sgu194 无源汇上下界可行流
摘要:Reactor Cooling题意:给定一个无源汇网络,求一个可行流,保证每个点的流量守恒。(有上下界的)思路:这是个无源汇上下界可行流问题,可以转化成单纯最大流来做,具体理论证明见论文:一种简易的方法求解流量有上下界的网络中网络流问题论文里讲的还是蛮好的,这里就讲下求解过程:我们用B(u, v)来表示边(u, v)的下界,C(u, v)来表示边(u, v)的容量,则流量满足:B(u, v) &l...
阅读全文
posted @
2010-10-11 17:16
ylfdrib
阅读(1945)
推荐(0)
hdu3605 Escape 最大流 + 缩图
摘要:Escape这题题意很简单,现有n个人要移居到m个星球去,给定一个n*m的矩阵,第 i 行第 j 列如果为1,表示第 i 个人可以去第 j 个星球,如果为0,表示不可以去。显然是个最大流问题,这题解题的关键在于建图,如果把每个人看做一个点,每个星球看做一个点,人到所有可以去的星球都连上边,那么整个图的边数在10^6,那么就会TLE,那么该怎么建图呢?我们观察一下这道题给的数据,n<= 100...
阅读全文
posted @
2010-09-19 21:16
ylfdrib
阅读(1056)
推荐(2)
spoj839 Optimal Marks 最小割模型
摘要:Optimal Marks很不错的一道题,最小割模型建的真妙,amber论文有详解。考虑到是异或运算求最小cost之和,由于对于二进制,各个位之间是互不影响的,所以可以将问题转会为每个二进制位的求解,然后求和即可。对于每个二进制位,要么为0,要么为1, 就想到将整个图切割成两个点集,即对于每个点,都只有两种取值,可以看成是要将点集划分成两类。在这种分类思想的指导下,重新考察操作的意义:对于边的两个...
阅读全文
posted @
2010-09-01 16:59
ylfdrib
阅读(1090)
推荐(0)
zoj2676 Network Wars 0-1分数规划
摘要:Network Wars胡伯涛论文《最小割模型在信息学竞赛中的应用》中详细介绍了分数规划思想的应用。经典的有最优比率生成树。对于分数规划的应用中,常用的就是0-1分数规划,即解向量X = {x1, ……,xi, ……}, 对于∀xi∈{0,1}。主要求解过程是,首先将原分式优化问题,转换成非分式优化问题,利用单调的性质...
阅读全文
posted @
2010-09-01 09:52
ylfdrib
阅读(1254)
推荐(0)
hdu3472 混合图的欧拉回路
摘要:HS BDC题意很简单,就是串单词,如果一个单词的尾字母和另一个单词的首字母相同,则可以连接起来,给你N个单词,问:能否串成一条链?关键在于如何建图,这题稍有不同,就是有些单词是可以翻转的,但也只能用一次而已。把二十六个字母'a'到'z'作为点,把每个单词作为边,如果某个单词首尾字母分别为a和b,则可以建一条有向边<a, b>,当然,如果此单词可以翻转,则建成无向边(a, b),显然可...
阅读全文
posted @
2010-08-21 11:51
ylfdrib
阅读(564)
推荐(0)
混合图的欧拉回路
摘要:混合图:即有的边有向,有的边无向。定义:对于图G的一个回路,若它恰通过G中每条边一次,则称该回路为欧拉(Euler)回路。 具有欧拉回路的图称为欧拉图(简称E图)。定理: 一个无向图是欧拉图,当且仅当该图所有顶点度数都是偶数。 一个有向图是欧拉图,当且仅当该图所有顶点度数都是0。有向图存在欧拉回路的充要条件:基图(把所有有向边变成无向边以后得到的图)连通,且每个点的出度等于入度。所以求混合图的关键...
阅读全文
posted @
2010-08-21 11:12
ylfdrib
阅读(2031)
推荐(1)
hdu3468 最大流 + 最短路
摘要:Treasure Hunting这道题出的相当不错。看上去像搜索,其实可以用最大流来做,或者二分匹配也行。题目大意:iSea和他的朋友一块去寻宝,地图上显示了很多的金币,图中有字母'A', 'B' ... 'Z', 'a', 'b' ... 'z',表示他们每次的会合地点,开始位置在A,他朋友每次以最短的距离有一个会合地点走向下一个会合地点,iSea也必须走最短路,但是他可以选择走有金币的路,不过...
阅读全文
posted @
2010-08-18 20:39
ylfdrib
阅读(971)
推荐(0)
【ZZ】最小割集Stoer-Wagner算法
摘要:一个无向连通网络,去掉一个边集可以使其变成两个连通分量则这个边集就是割集;最小割集当然就权和最小的割集。 可以用最小切割最大流定理:1.min=MAXINT,确定一个源点2.枚举汇点3.计算最大流,并确定当前源汇的最小割集,若比min小更新min4.转到2直到枚举完毕5.min即为所求输出min 不难看出复杂度很高:枚举汇点要O(n),最短增广路最大流算法求最大流是O((n^2)m)复杂度,在复杂...
阅读全文
posted @
2010-08-17 21:18
ylfdrib
阅读(15293)
推荐(5)
pku2125 最小割建模 + dfs 查找割边
摘要:Destroying The Graph题目大意:给定一个图,给每个顶点两个操作:删除顶点 i 的所有入边,需要花费W+,删除顶点 i 的所有出边,需要花费W-,现有一个图,可能含有圈和重边,问:删除所有的边,需要的最小花费,并输出操作过程。分析:既然删除出边和删除入边花费不一样,就可以拆点,对任意一点 u 拆成 u 和 u' 两个点,u 负责入边,u' 负责出边,u 和 u'之间无边相连, 这样...
阅读全文
posted @
2010-08-17 08:10
ylfdrib
阅读(845)
推荐(1)
pku1815 最小割点集 => 拆点 + 最小割
摘要:Friendship这题求得是点连通度,或最小割点集。删除这个集合,S到T就不连通,删除这个集合的任意真子集,S到T仍然有路可走。做法是拆点,将每个人p拆成两个点p和p',令p' = p + N, 建边<p', p, 1>,1为容量,其余的,如果A有B的号码,建边<A,B',INF>,最后求出S到T'的最大流即可(不同的建边情况不同,这里是S到T')。还有一难点是如果有多组...
阅读全文
posted @
2010-08-15 21:47
ylfdrib
阅读(628)
推荐(0)
pku3308 【论】如何将二分图顶点覆盖问题转化为最小割
摘要:在二分图中,有一个问题是,顶点覆盖问题。图G的一个顶点覆盖是由一些顶点构成的集合Q包含于V(G), Q包含每条边上的至少一个端点。Q的所有顶点覆盖边集E(G)。如果覆盖每个顶点需要付出不同的代价,也可以说是不同的花费,或称为点权,问题可以描述成,在保证覆盖所有边的情况下,如何使得权和最小。这里只讲二分图。我们可以建源点 S 和汇点 T,假设二分图两个点集分别为 X 和 Y。X和Y原来的边容量设为I...
阅读全文
posted @
2010-08-15 17:34
ylfdrib
阅读(1476)
推荐(0)
hdu3338 神奇网络流(最大流)
摘要:Kakuro Extension原数谜是个很有趣的游戏,如图,每一行或每一列空白称为一个回,每一回都对应着一个整数sum,sum就是这回的和。这些空白格里只能填入1—9这九个数字,且在每一回中不能重复。全黑色的格为空,有数字的格,左下角的表示列的和,右上角的表示行的和,则可以得到下面这个图。但这道题不是原来的数谜,这题与原数谜相比,少了一点规则,就是,每一回中出现的数字可以重复。给你一...
阅读全文
posted @
2010-08-15 09:55
ylfdrib
阅读(2335)
推荐(1)
pku2135 最小费用最大流 EK算法 邻接表实现
摘要:Farm Tour题意简单:FJ有N个农场,M条路,FJ要领朋友游玩,从1走到N,再回到1,不走重复路,每条路长度不一样,问最短路长为多少。转化为最小费用流来求解,建一源点S,指向节点1,容量为2,距离0,建一汇点T,N节点指向汇点,容量为2,距离为0,表示要有两条路从S到T,其余给定的路,容量为1,边权为路长,表示每条路只走一次。刚学的最小费用流,用邻接表实现了一下:
阅读全文
posted @
2010-08-05 07:53
ylfdrib
阅读(1295)
推荐(0)
pku2516 最小费用最大流 SPFA+栈求最短路 Ford_Fulkerson思想
摘要:Minimum Cost最近在看最小费用最大流,找了道题,练了练,还是比较简单的。题意很明确,有N个店主和M个供应商,有K种商品,每个店主对每个商品的需求量不一样,每个供应商对每个商品的库存量也不同,每种商品有不同的供应商提供给不同的店主,价格也不一样,都已给出,求满足店主所有要求的最小花费。由于各个商品互不干扰,就对每种商品求一次最小费用最大流就行了。建一个源点S = 0, 汇点T = N + ...
阅读全文
posted @
2010-08-02 21:29
ylfdrib
阅读(614)
推荐(0)
最大流 sap用法 和 模板
摘要:sap里面有个gap优化,一直没看懂,今天整理一下,发现被我修改变量名的num[i]记录的含义是标号为i的顶点数,刚开始num数组置零,表示所有表号都没有,唯独num[0] = n,表示所有的顶点现在的标号都为0。引用一下:我们在某次增广后,最大流可能已经求出,因此算法做了许多无用功。可以发现,距离标号是单调增的。这启示我们如果标号中存在“间隙”,则图中不会再有可增广路,于...
阅读全文
posted @
2010-07-30 12:02
ylfdrib
阅读(1180)
推荐(0)
最大流 EK dinic sap
摘要:pku3281 Dining题目分析:有N头牛,F种食物,D种饮料,要求给每头牛分配一份食物和一种饮料,每种食物和每种饮料只能供一头牛享用,问最多能满足多少头牛的需要。建图:建一超级源点标号为0,连上所有的食物,边权为1,建一超级汇点标号为2 * N + F + D + 1,连上所有的饮料,边权为1,在构造N个点和N头牛一一对应,保证每头牛只享用一种食物和一种饮料,边权为1,每头牛享用的食物和对应...
阅读全文
posted @
2010-07-28 21:42
ylfdrib
阅读(759)
推荐(0)
pku3469 最大流(dinic)
摘要:Dual Core CPU这题建图方式:第一核做源点(S = 0),第二核做汇点(T = N +1),每个模块的双核花费<Ai, Bi>,加边<S, i, Ai>, <i, T, Bi>,如果不在同一核上操作,虚假额外花费,即加双向容量,加边<a, b, w>, <b, a, w>。剩下的就是实现方法了,我这里用dinic来实现的。今天学...
阅读全文
posted @
2010-07-27 21:03
ylfdrib
阅读(593)
推荐(0)
pku1149 最大流(EK算法)
摘要:PIGS用EK就能做。盗用大牛讲解:题目大意:有 M 个猪圈(M ≤ 1000),每个猪圈里初始时有若干头猪。 一开始所有猪圈都是关闭的。 依次来了 N 个顾客(N ≤ 100),每个顾客分别会打开指定的几个猪圈,从中买若干头猪。 每个顾客分别都有他能够买的数量的上限。 每个顾客走后,他打开的那些猪圈中的猪,都可以被任意地调换到其它开着的猪圈里,然后所有猪圈重新关上。详解见:原创博客这...
阅读全文
posted @
2010-07-26 20:57
ylfdrib
阅读(313)
推荐(0)
pku3436 ACM Computer Factory 最大流
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=3436题目大意:每个电脑需要P个组成部分,现有N的机器,每个机器都可以对电脑进行加工,不过加工的前提是某些部分已经存在。且每个机器的加工都有一个performance,要求能得到的最大performance.算法分析:最大流,没用到一点优化,依然不会sap,dinic,直接bfs()搞定的,不过这次的bfs...
阅读全文
posted @
2010-06-28 21:57
ylfdrib
阅读(388)
推荐(1)
pku1459 Power Network
摘要:http://acm.pku.edu.cn/JudgeOnline/problem?id=1459题目大意:建图后,有三个角色,power station,只产生不消耗能量,可以和源点相连,consumer,只消耗能量,可以和汇点相连,dispatcher,是调度员,起到中转站的作用。根据题了给的条件限制,就可以给每条边赋上一个容量。算法分析:最大流。建图,增加一个源点和一个汇点,直接bfs(),...
阅读全文
posted @
2010-06-27 17:34
ylfdrib
阅读(348)
推荐(0)