摘要: . 阅读全文
posted @ 2012-11-05 12:46 有间博客 阅读(182) 评论(0) 推荐(0) 编辑
  2012年11月18日
摘要: 水。。。CODE:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<queue>usingnamespacestd;constintMAXN=510;constintMAXM=510*510;constintINF=0x3f3f3f3f;structEdge{intv,w;intnext;}edge[MAXM],edge2[MAXM];intn,m;intcnt,cnt2;intscnt,top,tot;intfirst[MAXN] 阅读全文
posted @ 2012-11-18 22:12 有间博客 阅读(180) 评论(0) 推荐(0) 编辑
  2012年11月14日
摘要: 点击浏览题目大意:/Files/g0feng/胡老师的跨国逃亡.doc关于这道题,是我在学习图论时一本参考书上看到的题目,觉得有趣,就写了写。大概思路:第一次我思考时,首先是找到A国中的边界点,然后找出1到边界点距离的最小值,然后通过通过spfa枚举边界点的去找离2的最小值,但这样应该会超时。于是我将地图预处理了一下,首先找到1离A中所有的点的最短路,然后去找2离B中所有的点的最短路。这里需要注意一下的就是怎么样去保证d[i]一定是代表一个国家之内的最小值,这里我们可以加一个判断,即vis[v] == f。记得把初始值d[src]置为0,这样,我们最后求得的距离一定是国家与国家之间的最小值。然 阅读全文
posted @ 2012-11-14 11:58 有间博客 阅读(383) 评论(0) 推荐(0) 编辑
  2012年11月13日
摘要: 每次枚举一个顶点,然后计算它到各个点的最大值,然后去顶点中最小的一个。#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<cstdlib>#include<map>usingnamespacestd;constintMAXN=110;constintINF=0x3f3f3f3f;intd[MAXN][MAXN];intn,m;voidinit(){for(inti=1;i<MAXN;i++){for(intj=1;j& 阅读全文
posted @ 2012-11-13 15:52 有间博客 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 大意不再赘述。 关于这道题目,我们可以抽象一下,即在保证货车不超过道路给定的最小限重量的情况下,使得货车装载的货物的重量最大。即一个顶点到另一个顶点所有路径中的最小的最大权值。CODE:#include<iostream>#include<cstring>#include<string>#include<cstdio>#include<cstdlib>#include<map>usingnamespacestd;constintMAXN=220;constintINF=0x3f3f3f3f;intd[MAXN][MAXN] 阅读全文
posted @ 2012-11-13 12:28 有间博客 阅读(193) 评论(0) 推荐(0) 编辑
  2012年11月12日
摘要: 关键在于模型的抽象与理解。CODE:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>#include<map>#include<cmath>usingnamespacestd;constintMAXN=510;structnode{intcostM;inttot;intx1,y1,x2,y2;}a[MAXN];intG[MAXN][MAXN];intxlink[MAXN],ylink[MAXN];boolvis[MAXN];intnx, 阅读全文
posted @ 2012-11-12 21:20 有间博客 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 匹配必须大于或者等于P,学生人数必须大于P。CODE:#include<iostream>#include<cstdlib>#include<cstring>#include<cstdio>usingnamespacestd;constintMAXN=310;constintMAXM=310*310;intfirst[MAXN],xlink[MAXN],ylink[MAXN];boolvis[MAXN];intG[MAXN][MAXN];intnx,ny;voidinit(){memset(G,0,sizeof(G));memset(xlink, 阅读全文
posted @ 2012-11-12 10:47 有间博客 阅读(147) 评论(0) 推荐(0) 编辑
  2012年11月11日
摘要: 一开始我以为是最小支配集,后来胡乱YY一下,以为最小支配集 == 最大独立数 == N-最大匹配,结果给我胡乱AC了。后来去网上搜搜解题报告才知道是最小路径覆盖。CODE:#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>usingnamespacestd;#defineMAXN130#defineMAXM20010intG[MAXN][MAXN];intxlink[MAXN];intylink[MAXN];boolvis[MAXN];intnx,ny,m;in 阅读全文
posted @ 2012-11-11 20:56 有间博客 阅读(193) 评论(0) 推荐(0) 编辑
  2012年11月10日
摘要: 水题,题目比较长,描述的题意太长。CODE:#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>usingnamespacestd;#defineMAXN25#defineINF0x3f3f3f3fintn,times;longlongd[MAXN][MAXN];voidinit(){for(inti=1;i<=20;i++){for(intj=1;j<=20;j++){if(i==j)d[i][j]=0;elsed[i][j]=INF;}}}vo 阅读全文
posted @ 2012-11-10 20:49 有间博客 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 水水更健康。建立正、反向图。CODE:#include<iostream>#include<cstring>#include<cstdio>#include<cstdlib>#include<queue>usingnamespacestd;constintINF=0x3f3f3f3f;constintMAXN=1010;constintMAXM=100010;structEdge{intv,next,w;}edge[MAXM];intn,m,src;intcnt;intfirst[MAXN],d[MAXN],ans[MAXN];int 阅读全文
posted @ 2012-11-10 18:31 有间博客 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 大意:有两台机器A和B。机器A有n中工作模式,B有m种工作模式。给定k个作业,每换一个模式需要重启一次,让你求出完成k个作业机器最小的重启次数。机器A和B的初始模式为0。思路:任务i在A的mode_x与B的mode_y都可以做的话,那么就连一条边。这样问题就转换成了边最小覆盖的问题,而最小覆盖又可以通过最大匹配来求解。在写邻接表时要注意一个问题,就是在模式0完成的工作不需要重启,因此可以用 u*v的大小来判断是否连边。邻接表:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstr 阅读全文
posted @ 2012-11-10 17:01 有间博客 阅读(238) 评论(0) 推荐(0) 编辑