自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 hdu1083

题意:有p门的课,每门课都有若干学生,现在要为每个课程分配一名课代表,每个学生只能担任一门课的课代表,如果每个课都能找到课代表,则输出"YES",否则"NO"。分析:采用二分图的最大匹配,对课程—学生关系建立一个图,进行二分图的最大匹配,如果最大匹配数==课程数,说明能够满足要求,否则不能。每个课程轮流选择课代表,从头遍历n学生,如果该学生还未担任任何课程的课代表或者一个学生担任的课代表的

2014-12-08 10:11:31 405

原创 hdu1085

题意:给n1个1,n2个2,n3个5,问它们不能组成的最小正整数是谁。母函数:http://www.cnblogs.com/FCWORLD/archive/2010/10/10/1847218.html#include #include int main() { int i,j,k,a,b,c,d[10001]; while(scanf("%d %d %d",&

2014-12-08 09:22:39 276

原创 hdu1086

背景知识:判断两线段是否相交:  我们分两步确定两条线段是否相交:  (1)快速排斥试验    设以线段 P1P2 为对角线的矩形为R, 设以线段 Q1Q2 为对角线的矩形为T,如果R和T不相交,显然两线段不会相交。  (2)跨立试验     如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 -

2014-12-08 08:52:39 336

原创 hdu1087

题意:从起点到终点,求走过的点的和最大。分析:最大上升子序列。状态转移方程:dp[i]=max{dp[j]+val[i],dp[i]}。#includeint main(){ int i,j,n,dp[1001],max,val[1001]; while(scanf("%d",&n)&&n!=0){ for(i=1;i<=n;++i){

2014-12-01 13:40:43 245

原创 hdu1099

题意:一套彩票有n张,编号由1到n,凑齐这n张能得奖,问平均每买几张彩票会得到完整的一套彩票。分析:拿到第一张卡片的概率是 n/n ,期望次数是 1,拿到第二张的概率是 (n-1)/n, 期望次数是 n/(n-1) ...把这些次数加起来 n/n + n/(n-1) + ... + n/1。#include#include__int64 gcd(__int64 a,__in

2014-12-01 13:00:06 310

原创 hdu1098

题意:求满足65|f(x)(即f(x)能被65整除)的最小a的值。分析:数学归纳法,f(x)能被65整除,则f(x+1)也能被整除,将f(x+1)展开,最后只要确保18+k*a能被整除。当k为65或者a大于64时都没有找到,则不存在。#includeint main(){ int i,k; while(~scanf("%d",&k)){ if(k%

2014-12-01 09:07:50 265

原创 POJ2239匈牙利算法BFS实现

题目大意:在大学里有许许多多的课程,现在小明需要去选择课程,他是一个爱学习的人,所以想尽可能多的选择课程,在学校里有n个课程,并且在学校规定,每周里的每天有12节课,那么一周就有7*12节课。

2014-11-23 19:16:53 676

原创 POJ1274匈牙利算法DFS实现

题意:     有n头牛与m个牛棚,给出每头牛愿意去产奶的牛棚编号,每头牛只可产一次奶,每个牛棚也只允许一只牛产奶。解法:    比较简单的二分图最大匹配

2014-11-23 18:01:44 461

原创 poj2299

题目大意:给出长度为n的序列,每次只能交换相邻的两个元素,问至少要交换几次才使得该序列为递增序列。分析:其实就是冒泡pa

2014-11-23 16:22:58 227

原创 HDU1856

王老师要找一些男孩,越多越好,有一个房间

2014-11-16 16:39:50 419

原创 HDU1232

#include#define MAX 1005int father[MAX],rank[MAX];int findfather(int a){ if(father[a]==a) return a; return father[a]=findfather(father[a]);}void Union(int a,int b){ int fa=fin

2014-11-16 15:41:45 239

原创 HDU1272

并查集的优化[编辑]路径压缩[编辑]刚才我们说过,寻找祖先时采用递归,但是一旦元素一多起来,或退化成一条链,每次GetFather都将会使用O(n)的复杂度,这显然不是我们想要的。对此,我们必须要进行路径压缩,即我们找到最久远的祖先时“顺便”把它的子孙直接连接到它上面。这就是路径压缩了。

2014-11-16 15:13:09 327

原创 POJ2253Floyd

题意:

2014-11-09 16:48:27 318

原创 POJ3169差分约束(SPFA)

题意:n头牛编号为1到n,按照编号的顺序排成一列,每两头牛的之间的距离 >= 0。这些牛的距离存在着一些约束关系:1.有ml组(u, v, w)的约束关系,表示牛[u]和牛[v]之间的距离必须 = w。问如果这n头无法排成队伍,则输出-1,如果牛[1]和牛[n]的距离可以无限远,则输出-2,否则则输出牛[1]和牛[n]之间的最大距离。

2014-11-09 13:16:57 576

原创 POJ3159差分约束(SPFA)

题意:         有一批糖果要由班长flymouse分发给班里的小朋友,给出m对数据u,v,w,表示第u个小朋友不能比第v个小朋友少w个,但flymouse与snoopy不和,所以在满足上述约束的条件下,flymouse要尽量比snoopy多。snoopy标号1,flymouse标号n

2014-11-09 12:34:03 281

原创 POJ1062Dijkstra

题意:探险家需要不停的交换来获得更大的

2014-11-02 20:13:58 292

原创 HDU2544Bellman-Ford

题目:无向无负权图,求单源最短路径

2014-11-02 15:39:58 498

原创 HDU1162最小生成树

题目大意Kruscal算法:

2014-10-28 20:20:10 260

原创 HDU1241广搜

题目大意:矩形格子内有油田,相邻的两个格子如果油口,那么它们是同一个油田,求一共有多少的油田。分析:深搜,广搜都可以,广搜注意标记以避免重复访问。(PS:杭电上给的第四个测试数据有问题,第二个5后面多了个空格)#include#include#define MAX 105char ma[MAX][MAX],mark[MAX][MAX],ans,row,col;int d[8][2]={0,

2014-10-27 20:07:07 327

原创 HDU1312深搜

题目大意:有h*w格子,从起点开始,

2014-10-26 20:24:24 204

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除