随笔分类 -  图论

1 2 3 下一页

hdu 1733
摘要:A:增加源点src,和汇点dest,然后根据每个时间点建出分层图,每个时间对应一层,对于每层图的构造如下B:给每个格子标上号Xi, 由于每个格子一次只能占一人,所以把每个格子分为两个点xa,xb,连上容量为1的有向边,对于格子为‘X’的,(如果为第0层的话)在源点src与xa之间连一条容量为1的有向边,对于格子为'@'的点,在xb与汇点dest连上容量为1的有向边,对于每个格子,(除‘#’外),在xb与其上下左右及其本身的对应下一层图的xa连上容量为1 的一条有向边C:具体操作并不是一下子建出分层图,由于时间是未知的,所以枚举时间,做最大流,当最大流小于人数时,时间加一并在原图 阅读全文

posted @ 2011-08-29 20:00 宇宙吾心 阅读(301) 评论(0) 推荐(0)

hdu 3721
摘要:题意:给一棵树,可以移动树上的一条边,必须保证移动之后的图还是一棵树,问如何移动才能使得移动之后的树的直径最短思路:枚举每条边,如果移除了这条边,会将这棵树分成两部分,新增加的边必须是连接这两个部分的边,这样才能保证新形成的是一棵树,那么这样对于两个部分分别求出这个部分上面的点,满足这个点是这个部分中到其余所有点的最长的距离最短的点,显然新增加的边要连接这两个点才能使得新形成的树的直径最短那么问题就变成了给定一棵树,求出一个满足上述条件的点了,其实只要先求出这棵树的直径,那么要求的点就一定是直径中心附近的那两个点之一了,证明如下:假设要求的点不是直径上面的点,那么由于原图是一棵树,取这个点到直 阅读全文

posted @ 2011-08-29 16:17 宇宙吾心 阅读(301) 评论(0) 推荐(0)

hdu 3666
摘要:log后变为差分约束 阅读全文

posted @ 2011-08-29 14:59 宇宙吾心 阅读(174) 评论(0) 推荐(0)

hdu 3594
摘要:/*判断强连通的图中每条边是不是只在一个环内*//*(1):如果有重边则NO(2):如果dfs时有一条后向边(u->v),怎把当前栈内的点一次退出,直到遇到v 然后把那些点的W[x]++;(v除外);表示形成了一个环*/ 阅读全文

posted @ 2011-08-29 14:37 宇宙吾心 阅读(191) 评论(0) 推荐(0)

hdu 3231
摘要:差分约束的简化形式,拓扑排序。 阅读全文

posted @ 2011-08-29 13:43 宇宙吾心 阅读(250) 评论(0) 推荐(0)

hdu 1565
摘要:Description给你一个n*n的格子的棋盘,每个格子里面有一个非负数。从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大。解题思路分析下题目的一些关键的特点:首先此题最大特点就是一个点只和周围4个点有关联,简单的说就是可以通过一个奇偶染色构造二分图(为么么?),在假设如果每个的点权都为1,那此题就可以转换成最大独立集。那现在这是个什么问题呢?其实这是一个二分图最大点权独立集问题,就是找出图中一些点,使得这些点之间没有边相连,这些点的权值之和最大。独立集与覆盖集是互补的,求最大点权独立集可以转化为求最小点权覆盖集(最小点权支配 阅读全文

posted @ 2011-08-28 21:05 宇宙吾心 阅读(381) 评论(0) 推荐(0)

hdu 3820
摘要:如果HDU 1569 3657没做的,先做做那两题吧。这题是个升级版。对原矩阵黑白染色1 2 34 5 67 8 9A={1,3,5,7,9}B={2,4,6,8}矩阵中每个点可以取两个值中的任意一个,或者都不取。根据这一个条件,我们可以把一个点拆分成两部分,k,k'。对A集合中的点,k为金蛋,k'为银蛋。B集合中的点,k为银蛋,k'为金蛋。k->k’连一条容量为inf的边,这样就可以保证k,k'只取其中一个,或者都不取。从S到k,从k'到T 分别连一条容量为其价值的边。对A中的金蛋k,向B中的金蛋k'连一条容量为G的边。对B中的银蛋k,向 阅读全文

posted @ 2011-08-28 20:54 宇宙吾心 阅读(427) 评论(0) 推荐(0)

hdu 3605
摘要:最大流+缩图 阅读全文

posted @ 2011-08-28 20:08 宇宙吾心 阅读(177) 评论(0) 推荐(0)

hdu 3526
摘要:最小割建模添加源S和汇T,对每个组件,由S向其连一条边权代表在A处购买其所用的花费的边. 由组件向T连一条边权为在B处购买其所用的花费的边. 其他由于不兼容造成的花费就在两个发生不兼容性质的组件之间连双向边,边权为花费. 阅读全文

posted @ 2011-08-28 19:59 宇宙吾心 阅读(184) 评论(0) 推荐(0)

hdu 3416
摘要:同2485差不多。 阅读全文

posted @ 2011-08-28 19:15 宇宙吾心 阅读(145) 评论(0) 推荐(0)

hdu 3335
摘要:最小路径覆盖。 阅读全文

posted @ 2011-08-28 17:47 宇宙吾心 阅读(134) 评论(0) 推荐(0)

hdu 3251
摘要:最小割建模:源点与1连容量为无穷的边,每对有向边之间连边,容量为权值,然后每个可以拥有的城市向汇点连边,容量为价值答案即为所有可拥有城市的价值-最小割 阅读全文

posted @ 2011-08-28 16:47 宇宙吾心 阅读(254) 评论(0) 推荐(0)

hdu 2485
摘要:正向Dijkstra和反向Dijkstra一次,分别求出点1到i和i到点n的距离 dist[i]和_dist[i],对于某个点若dist[i]+_dist[i]>K的话,则说明这个点可以从图中删去,因为流量经过点i都不可能在k步内流到汇点,所以这个点在最大流过程中是没有任何意义的,所以删掉,而构建出的新图便是普通的求割点 阅读全文

posted @ 2011-08-28 16:29 宇宙吾心 阅读(179) 评论(0) 推荐(0)

hdu 3018
摘要:对于每一个连通分支,如果不存在奇数点,显然可以一笔画,否则即是奇数点的个数的一半. 阅读全文

posted @ 2011-08-24 21:18 宇宙吾心 阅读(207) 评论(0) 推荐(0)

hdu 3278
摘要:BFS注意状态数只有C(24,8)。 阅读全文

posted @ 2011-08-13 10:18 宇宙吾心 阅读(128) 评论(0) 推荐(0)

hdu 3313
摘要:有向无环图的任意两节点间的关键点。BFS即可经典题。 阅读全文

posted @ 2011-08-11 16:21 宇宙吾心 阅读(235) 评论(0) 推荐(0)

hdu 3339
摘要:最短路+dp 阅读全文

posted @ 2011-08-10 18:49 宇宙吾心 阅读(126) 评论(0) 推荐(0)

hdu 3335
摘要:定理1>令(X,≤)是一个有限偏序集,并令r是其最大链的大小,则X可以被划分成r个但不能再少的反链.其对偶定理称为Dilworth定理:定理2>令(X,≤)是一个有限偏序集,并令m是反链的最大的大小,则X可以被划分成m个但不能再少的链.最后:链的最少划分数=反链的最长长度用二分图方法求最小路径覆盖,即可 阅读全文

posted @ 2011-08-10 16:01 宇宙吾心 阅读(242) 评论(0) 推荐(0)

hdu 3375
摘要:编码,BFS,经典 阅读全文

posted @ 2011-08-10 11:01 宇宙吾心 阅读(145) 评论(0) 推荐(0)

poj 1789
摘要:#include<iostream>#include<fstream>#include<queue>using namespace std;char c[2001][8];int map[2001][2001];int ok(int s,int t){ int j=0; for(int i=0;i<7;i++) { if(c[s][i]!=c[t][i]) j++; } return j;}int d[2001];int v[2001];int n;void solve(){ int i,j,k; for(i=1;i<=n;i++) d[i]=m 阅读全文

posted @ 2011-06-02 10:26 宇宙吾心 阅读(238) 评论(0) 推荐(0)

1 2 3 下一页

导航