- 博客(43)
- 资源 (4)
- 收藏
- 关注
原创 POJ 2135 Farm Tour (最小费用最大流)
大意:从1点走到n点然后再返回到1点,前提是所有的路程只能够走一次。思路:因为从原点走到n点然后再走回来需要走源点两次,所以流量为2.因为所有的路都是双向图,即需要建四条边。#include<iostream>#include<cstdio>#include<cstring>#include<map>#include<queue>#include<algorithm>#define MA
2016-04-30 12:51:30 441
原创 FZU 1341 & POJ 2536 (二分图)
#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define LL int#define inf 0x3f3f3f3f#define eps 1e-8#include<v
2016-04-27 16:51:42 359
原创 PAT乙级(Basic Level)真题 >福尔摩斯的约会 (Java记录)
import java.math.*;import java.util.*;public class Main{ public static void main(String[] args){ Scanner cin = new Scanner(System.in); String str[]; str = new String[4];
2016-04-27 10:48:45 574
原创 POJ 3680 Intervals (最大费用最大流)
大意:给定n,k分别代表n段线段,累加的线段不会超过k次。问最后所以的累加最大和是多少。思路:最大费用最大流,刚上来建图弄错了。建成了原点与每个点都有流量为K,费用为0的边。这样显然是错的。那么就需要建源点到1点流量为k的边,同理cnt到ed点也有流量为k的边。就保证了不会超过k次。但是注意边和边之间的连线因为都是同一性质的点所以直接短点相连即可。(PS:1离散化 2.求解最大值,所以建图要用复权)
2016-04-26 17:27:01 461
原创 POJ 1151 Atlantis(离散化)
大意:求出不重叠矩形的面积交。思路:同两个x[],y[]分别放x,y坐标,然后枚举标记所有的矩形范围。 最后两相邻点,来求面积。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>
2016-04-25 11:32:23 381
转载 zoj 3316 Game (一般图匹配带花树)
1.增广路:长度为奇数,第一条和最后一条边都是未匹配的边,增光路径是一条匹配边,一条未匹配边这样交错的路径,也叫做交错路2.二分图已经得到最大匹配当且仅当没有增广路因为如果这时候还有增广路(长度为2*k+1),其中k条匹配的边,k+1条未匹配的边,其中第一条和最后一条是未匹配的边,我们可以把原来是未匹配的(k+1)变成匹配的,原来匹配的(k)变成未匹配的,结果增加1所以二分图的匈牙利算法枚举左边的点
2016-04-25 10:15:52 604
原创 文章标题
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Descr
2016-04-24 21:25:39 292
原创 FZU 1202 信与信封问题
大意: x,y表示信x不会再信封y中,那么有多少匹配能唯一匹配可能。思路:就是判断匹配线是不是关键匹配。(类似关键点的判断)。只不过还需要一个cro[],来存储当前数组下标和那个点匹配的(下标为信,数值为信封的编号)。#include<iostream>#include<cstring>#include<queue>#include<cstdio>#define inf 0x3f3f3f3
2016-04-24 20:21:03 495
原创 (最优比率生成树 )POJ 2728
题目大意是给一些点,这些点两两之间有距离,有代价。请你找出一个最小生成树, 使代价/距离最小。 最优比率生成树问题。#include<iostream>#include<cstdio>#include<cstring>#include<cmath>using namespace std;const int VM=1010;const double INF=1e15;const doub
2016-04-24 17:31:35 410
原创 (最小树形图 朱刘算法) poj 3164
大意:有向树的的最小权值和。思路:(有向树不是无向所以不能用prim做)#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<limits.h>using namespace std;const int MAXN = 110;const int MAX
2016-04-24 17:18:16 487
原创 最小生成树计数 bzoj 1016
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#define mod 31011using namespace std;int n,m,cnt,tot,ans=1,sum;int fa[105];struct edge{int x,y,v;}e[1005];struct data{int
2016-04-24 16:39:06 420
原创 ZJOJ Highway Project 3946(单源最短路+贪心)
大意:有n,m表示n个点,m个边,然后就是m条边的信息,分别是x,y,ti,cost.点xy间的路耗费时间是ti,金钱是cost.因为点和边范围为10^5,所以想到复杂度小的SPFA(O(E)).思路:直接是SPFA边求最短的时间的路,同时求耗费的金钱。但是注意耗费的金钱,cost[]数组不能够存从源点到当前点的耗费,因为若 两条路径时间是相等的,但是一条路是好多节点组成的但是耗费多。但是另一个是
2016-04-24 14:43:01 771
原创 HDU 2389 Rain on your Parade (HK二分图)
大意:给定时间t,并且n个人的坐标,然后有伞的坐标求最少有多少人不被淋湿。hk算法模板。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define ll long long
2016-04-24 14:08:24 391
原创 HDU 4160 Dolls (二分图)
PS:类似于盒子问题,给定盒子的长宽高的大小,只不过多了一个高。#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>using namespace std;struct node{ int l,h,w;}q[601];int mp[601][601];bool op(node a,n
2016-04-22 16:11:24 361
原创 HDU 2768 Cat vs. Dog (二分图)
大意:给定v组cx与dx(表示喜欢cx不喜欢dx)或dx,cx问在v个人中最后还剩下多少人。思路:既然是算最后剩下最多数目的人,那么我们可以对有矛盾的两个人建边(即结果是他们的满意度是最低的)。找到了这些人的个数sum,ans=v-sum/2,即匹配数。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<st
2016-04-22 15:33:45 401
原创 POJ 1985 Cow Marathon(树的直径&BFS+BFS)
大意:找出图中的相距最远两个点的距离。思路:由于从任意一个点出发找到最远的一个点,一定在相距最远两点的其中一个端点,所以两次BFS找最远距离。vector:#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#inclu
2016-04-22 11:04:59 459
原创 表单验证
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Ty
2016-04-20 11:38:32 372
原创 HDU HDU 2255 奔小康赚大钱 (KM最大权)
KM模板:#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define ll long long#define inf 0x3f3f3f3f#define eps 1e-8
2016-04-19 17:56:04 351
原创 FZU Problem 2227 邮票 (离散化+map+dfs)
#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define ll long long#define inf 0x3f3f3f3f#define eps 1e-8#inc
2016-04-19 11:53:53 456
原创 PAT 1007 A除以B (20) (大数取余+除法)
思路:串的处理。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define ll long long#define inf 0x3f3f3f3f#define eps 1
2016-04-19 10:45:08 369
原创 南京理工大学第八届程序设计大赛(校外镜像) sequence(dp+二分)
二分+dp求最长下降子序列#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define LL int#define inf 0x3f3f3f3f#define eps 1e
2016-04-18 17:39:12 1003
原创 南京理工大学第八届程序设计大赛(校外镜像) H谁才是最强战舰!(博弈)
大意:有n堆石子两人轮流取,每次取任意个,谁最后取走谁输。思路:1、当这么多堆都是一个石子那么,n为奇,那么先手为奇异状态,否则,为必胜。 2、否则对所有石子取亦或,若结果为0则先手奇异状态。#include<map>#include<queue>#include<cmath>#include<cstdio>#include<stack>#include<iostream>#inclu
2016-04-18 17:23:52 1123
原创 DHU 4135 co-primer(容斥原理)
大意:求a-b中与n互质的个数。using namespace std;typedef long long ll;ll prime[70];ll m,n;void get_prime(){ for(ll i=2;i*i<=n;i++) if(n&&n%i==0) //对n进行素因数分解 { prime[m++]=i;
2016-04-18 16:48:59 329
原创 HDU 5667 Sequence(矩阵快速幂+费马小定理)
大意:He gives you 5 numbers n,a,b,c,p,and he will eat fn foods.But there are only p foods,so you should tell him fn mod p.Input The first line has a number,T,means testcase.Each testcase has 5 numb
2016-04-17 21:29:59 544
原创 HDU 5666 Segment(大数+gcd)
大意:给定一个直线方程x+y=p;(p为质数)求在第一象限围城的区域里格子的点数有多少。思路:一条直线上的格子点数为gcd(x,y),那么我们可以直接用三角形上加内的总点数减去在直线上的点数那么在直线上的点数为gcd(x,y)=gcd(x,y-x)(y>x)=gcd(x,p-y)=gcd(x,p)=1所以直线上的点数为0。 注意可能超__int64.import java.util.*;impo
2016-04-17 18:58:48 501
原创 HDU 3367 Pseudoforest(最大生成树+并查集)
大意:n个点m条边,问如果每个联通分支中最多有一个环,最后可以组成的最大的权值和是多少。思路:类似一颗生成树,是的话那么一定是最大生成树。那么怎么判断是不是会有环的形成呢?那么就可以用并查集判断了,所以直接用克鲁斯卡尔算法算最大生成树即可。概括起来有两种情况:1、两个端点在同一集合,那么判断是不是有环(标记数组判定),2.不在同一集合,如果两边都有环也不可以。#include<map>#inclu
2016-04-15 20:14:23 439
转载 外企面试
任何面试都有一定模式可循。知己知彼,方能百战百胜。让我们来热一下身,熟悉常见的面试问题。1、 自我介绍 常见的提问有Please introduce yourself briefly或者Describe yourself in three words。明智的回答是将对话向自己准备好、擅长的方面引导,然后用小故事去支撑论点。在面试中例子是非常有说服力的,多准备一些是不会有错的。万一出现冷场,这些有
2016-04-15 15:08:41 1111
原创 字符串遇到指定的字符停止输入
void CIN(char *st,int len){ int i;char ch=','; for(i = 0;i < len;++ i){ st[i] = getchar(); if(st[i] == ch) break; } st[i] = '\0';}
2016-04-15 14:22:46 6077
原创 给定字符的ASCIIn次幂且取膜后的数字,求原来的字符串(快速幂+打表)
显然可以打表,将所有的大小写字母或者数字求完幂取完膜后,判断是否有冲突,然后 进行数字拆分,如果没有对应的字符标记。#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cstdio>#include<stack>#include<iostream>#include<cst
2016-04-13 17:30:44 483
原创 WEB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Ty
2016-04-13 11:10:04 362
原创 SDUT 2155 Emergency(Floyd)
关键是怎么优化最短路,当我们标记一个点的时候直接就可以以当前这个点去更新其他在集合中的点。#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#includ
2016-04-11 11:18:10 315
原创 SDUT 2152 Balloons(DFS 四面+八面) 2010年山东省第一届ACM大学生程序设计竞赛
#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define inf 0x3f3f3f3f#define e
2016-04-10 21:25:16 312
原创 SDUT 2157 Greatest Number (二分) 2010年山东省第一届ACM大学生程序设计竞赛
大意:找出不多于四个数的和是<=m的。思路:二分,我们可以按一个数被用到的次数将他们放到数组里。1.n个数中<=m的数 2.n个数中任意两个数的和<=m的然后暴力0-cnt在其中再找到对应两外0-2个数(对应数组的和)。#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cs
2016-04-10 20:50:05 415
原创 SDUT 2151 Phone Number 2010年山东省第一届ACM大学生程序设计竞赛
#include<map>#include<cmath>#include<queue>#include<cmath>#include<string>#include<cstdio>#include<stack>#include<iostream>#include<cstring>#include<algorithm>#define inf 0x3f3f3f3f#define e
2016-04-10 19:07:21 392
原创 HDU 4686 Arc of Dream(矩阵快速幂)
大意:已知 a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY What is the value of AoD(N) modulo 1,000,000,007?思路:已知an,bn是一个递推式,AoD(n)也是一个递推式,所以试想用一个快速幂解决。那么就应该把a0,b0,ax,ay,bx,by代进去构成一个式子。那么就可以构造矩阵了。因为an
2016-04-08 19:53:07 380
原创 HDU 2276 Kiki & Little Kiki 2 (矩阵快速幂)
大意:有01串分别代表灯的状态(关闭,打开),当当前灯的左边灯是1,那么当前灯状态改变,否则不变。思路:以其中的两个灯的状态来考虑。 0 0 0 1 1 0 1 1 一共四种状态,最后两种状态
2016-04-07 17:02:50 369
原创 HDU 2157 How many ways??(矩阵快速幂)
大意:给定n个点,然后个关系代表x到y之间有有向路,问从s到t之间经过k个点(即k步),有多少种方式。思路:存在一条边i->j。令C=A*A,那么C(i,j)=ΣA(i,k)*A(k,j),一条边乘一次,k条即乘k次。#include<map>#include<cmath>#include<queue>#include<cmath>#include<cstdio>#include<stac
2016-04-06 17:49:09 533
原创 HDU 2604 Queuing(矩阵快速幂)
大意:一列人有mf(男,女)问最后不是fmf和fff的排列方式有多少种。思路:就是个递推,类似推骨牌从最后一位来考虑,(PS骨牌:最后的牌排列方式有横着或者竖着,竖着的话有f(n-1)中,否则横着就是f(n-2))。此题也是当最后为m有F(n-1),当为f时不确定看两位mf,ff{当为mf时,不确定,看最后三位,mmf,fmf在为mmf时为F(n-3)种}{为ff,时也不确定最后三位有mff(不确定
2016-04-05 21:45:28 384
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人