上下界网络流
上下界无源汇可行流
求每条边流量的一组可行解,满足每个点的入流量等于出流量。
新建超级源,超级汇,把\([u,v,high,low]\)的限制改为\([u,v,high-low],[s,v,low],[u,t,low]\),然后跑最大流。判断一下下界之和是否等于最大流即可。
上下界无源汇费用流
在上一题建的图中加权即可,新建的边不用,跑完判断有解后再计入答案
上下界有源汇最大流
源点\(s\),汇点\(t\)。超级源\(ss\),超级汇\(tt\)。首先判断是否存在可行流,加一条\([t,s,inf]\)转成无源汇有上下界的可行流问题。
可以时,再从\(s\)到\(t\)跑一个最大流即为答案。
简要证明:
之前超级源汇是跑满了,再跑不会经过超级源汇。
由于连了\([t,s,inf]\),可行流的流量已经在\([t,s,inf]\)边中,跑最大流的时候,\([t,s,inf]\)反向边就有可行流的流量,就不用加了。
上下界有源汇费用流
直接加上费用即可
上下界有源汇最小流
先不加\([t,s,inf]\),跑超级源到汇的最大流,再加上\([t,s,inf]\),再求最大流,此时\([t,s]\)的流量就是答案。
简要证明:
(好好利用循环流)
第一遍并无\([t,s,inf]\),所以\([s,t]\)的流量已尽力流向其它边 。
加上\([t,s,inf]\)后,流过这条边是流不到其他边的流量,尽可能减少\([t,s]\)流量,减小答案。
作者:starusc
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。

浙公网安备 33010602011771号