最大流=最小割,而因为本题点的度数不超过3,所以最小割不超过3,EK算法的复杂度为$O(n+m)$。 通过分治求出最小割树,设$f[i][j][k]$表示最小割为$i$时,$j$点在第$k$次分治过程中是否与$S$连通,$h[i][j]$为$f[i][j][k]$的hash值,那么如果$h[k][i
分类:
其他好文 时间:
2016-03-20 07:01:58
阅读次数:
204
一、残留网络及增广路 残留网络、增广路及割是构成最大流最小割定理的三个基本概念,该定理巧妙地运用网络中的最小割来描述最大流的值。 1.残留网络 对于网络G=(V,E,C),设流f是G中的流。残留网络直观上讲是由还可以容纳更多的流的边组成。对于G中的每条边<u,v>,可以定义残留容量为在不超过容量限制
分类:
其他好文 时间:
2016-03-02 01:38:12
阅读次数:
216
什么是流(flow): 在一个有向图中,只有出去的边没有进来的边的节点叫做源(source),只有进来的边没有出去的边的节点叫做汇(sink),其它的节点进来的边和出去的边应该是平衡的。 边上可以加权值,假设对于一个交通图来说,可以认为边上的权重为一条道路上的最大流量。那么对于图中任意两个节点来说,
分类:
其他好文 时间:
2016-02-24 20:51:21
阅读次数:
178
可以树形DP,也可以用网络流(最大流=最小割) 用树形DP的话,这题就是 HDU 3586 简化版,HDU 3586还需要二分查找。 #include<cstdio> #include<cstring> #include<cmath> #include<ctime> #include<map> #i
分类:
其他好文 时间:
2016-02-09 15:52:11
阅读次数:
214
这题算是平面图上最大流/最小割比较经典的一题了吧。。周冬的论文《两极相通——浅析最大最小定理在信息学竞赛中的应用》中给出了详细的解释和证明。平面图上的最大流/最小割等于它对偶图上的最短路(大致是这个意思吧)。把每个三角形作为点,有公共边就连边,有上边界和右边界的与源点连边,有左边界或下边界的与终点连...
分类:
其他好文 时间:
2015-12-23 21:18:20
阅读次数:
206
题目大意:给一张网络,问是否存在一条恰为C的流。若不存在,那是否存在一条弧,使得改动这条弧的容量后能恰有为C的流?题目分析:先找出最大流,如果最大流不比C小,那么一定存在一条恰为C的流。否则,找出最小割集,然后枚举每一条弧改动其容量,看是否存在恰为C的流。代码如下:# include# includ...
分类:
其他好文 时间:
2015-12-08 02:00:43
阅读次数:
180
首先上一张常见的图:考虑不引入反向边的情形:如果执行bfs一次扫描到增广路1-2-4-6,流量总量累加10,得到的残量网络无法继续进行增广,那么算法返回最大流为10.然而实际上最大流是20,显然该算法是有问题的。最大流算法都是基于最大流最小割定理的,即网络流中任意可行流必然不超过任意S-T割容量,并...
分类:
编程语言 时间:
2015-11-10 23:47:16
阅读次数:
390
题目大意:需要解雇若干人,解雇每个人有一个损失或收益,解雇一个人就必须结果他的所有下属,问最大收益。思路:裸最大权闭合图问题,对于权值为q的点,负权向汇点连-p的边,正权源点向其连p的边,上下级关系上级向下级连oo的边,然后求最大流最小割,最大收益即为总正点权减最小割,需要裁员的人即为残余图中从源点...
分类:
其他好文 时间:
2015-08-16 11:59:41
阅读次数:
137
function [F, maxf, V, S] = Ford_Fulkerson(C, src, sink)
n = size(C, 1);
F = zeros(n);
maxf = 0;
V = [];
S = [];
while true
% in: ResNet.
ResNet = C - F + F'; % residual network.
% ou...
分类:
编程语言 时间:
2015-08-15 11:59:02
阅读次数:
293