【上下界网络流】基础

%%%CTY大佬1年多前就会了

可行流

先建立超级原点汇点,为SS和TT,
对于边x->y,下界上界分别是Mi,Mx,拆成3条网络流的标准边:SS->y,流量Mi;x->TT,流量Mi,x->y,流量(Mx-Mi),
连完以后再从T向S连流量为正无穷的边,
从SS开始流(注意,不是从原来的S,T流入流出),TT流出,如果SS的每条边流满,则可行,反则不可行。
感性的理解:这样的拆点相当保证了每条原边都有Mi的流量;而T向S的正无穷边,则是后面的点判断前面的限制是否可以给它至少Mi的流量,这个读者可以仔细想一下,挺显然的(感觉有其他的方法,但起码这个一定是正确的)

最大流

先流可行流,
再删掉SS,TT,在剩下的残量网络上由S->T跑,
最大流就是残量网络跑出来的+原图T->S这条边的流量

最小流

同样先判断这个图可行,
把T->S的边删掉,流一遍,再加上这条边,流一遍,最小流就是这条边的流量,

证明:这相当于给了S->T这条边小的优先值,最后再流;连向TT的边都是为了保证原图中每条边至少有Mi的流量,它再下一条点还会流入的,所以真正的流量是T->S这条边的流量,而满足下界的流量一定是最小流量;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值