有这样一张图,源点到汇点会流水,每一条带箭头的边都是一根单向流的管道,数字代表这根管道最多能流多少水(单位为1),要求满足管道从起点到终点能流的最多的水。源点只放一次水,管道不能被损坏。
比如源点到1可以流40的水,但它实际最多只能流25的水(想一想为什么?)
这么看,假设源点到1流40的水,到1这里它会分叉,1到汇点流15,那剩下的25只能向2流,1到2只能流20,就会出问题。
35也不行,2到汇点只能流10,倒推回去1最多容纳25,那么源点到1只能流25。
整张图的最大流其实是65,最小割=10(2到汇点的边)+15(1到汇点的边)+40(源点到3的边).
那么如果这张图很大,节点(管道交点)数和管道数多,人脑运算==cannot work out的时候,求助计算机吧!
最大流,最小割定理:对于一张图,最大流==最小割。
什么是最小割?最小割是一个边权的累加,这条边满足

比如源点到1可以流40的水,但它实际最多只能流25的水(想一想为什么?)
这么看,假设源点到1流40的水,到1这里它会分叉,1到汇点流15,那剩下的25只能向2流,1到2只能流20,就会出问题。
35也不行,2到汇点只能流10,倒推回去1最多容纳25,那么源点到1只能流25。
整张图的最大流其实是65,最小割=10(2到汇点的边)+15(1到汇点的边)+40(源点到3的边).
那么如果这张图很大,节点(管道交点)数和管道数多,人脑运算==cannot work out的时候,求助计算机吧!
最大流,最小割定理:对于一张图,最大流==最小割。
什么是最小割?最小割是一个边权的累加,这条边满足
对于一个图中的两个节点来说,如果把图中的一些边去掉,刚好让他们之间无法连通的话,这些被去掉的边组成的集合就叫做割了,最小割就是指所有割中权重之和最小的一个割。
我们来证明为什么有最大流=最小割:
对于每一条起点到终点的路径上的一个割线,权值一定》=min(这条路上权值)
而最大流在当前路径能跑的流<=min(这条路权值)
即有最大流=最小割
有关平面最小割与最短路的转换
参考了:周冬的论文 《两极相通——浅析最大—最小定理在信息学竞赛中的应用》
引用其他地方的东东:
(bzoj1001这道题)
可以把边当成两个平面的割,把两个平面之间建边,权值为这个。
然后,最小割转化为求最小环,由于s-t的权值为0,我们将其删去,就是求s-t最短路。
网络流我做过的题型大致有:
最大流 最小费用最大流 最小割 二分图匹配
代码都是模板,基本不存在什么问题,考点在如何建图,建立这个模型。
还需要一些技巧,比如拆点。