上下界网络流

来自: https://blog.csdn.net/linkfqy/article/details/74779656

无源汇上下界可行流

构建虚拟源点SS,虚拟汇点TT
若i点原来 入>出,则SS向i连一条容量为其差值的边
若i点原来 出>入,则i向TT连一条容量为其差值的边
因为一条边最终流量等于 下界+新图对应流量,原来流量不平衡的点需要用虚拟源汇来补偿流量

因为当且仅当SS的所有连边都满流时有解
所以刷SS到TT的最大流即可
前面提过,一条边最终流量等于 下界+新图对应流量,根据这个可以求一些题目的答案

有源汇上下界可行流

(给定源汇是S和T,虚拟源汇是SS和TT,不要混淆起来!)
考虑连一条T到S的无限制的边
那么有源汇就转化成了无源汇

值得一提的是,如果想要知道可行流的流量,可以直接看T到S那条新加边的流量(根据流量守恒)

有源汇上下界最大流

先刷出一个可行流
如果有解,那么SS的所有边都满流了,也就完成了它的使命
接下来只需要刷S到T的最大流即可
(接下来S到T不管怎么变,都影响不了SS的出边,所以一直是满足流量守恒的)
(而且这是残量网络,不用考虑会突破下界)
不过我个人还是习惯把SS,TT的所有边以及T到S的那条边删去,这样感觉清爽一点

答案是可行流流量+S到T最大流流量

有源汇上下界最小流

还是要先刷出可行流
和最大流一样的道理,此时需要把S到T的流量尽量减小
可是……可是好像没有这种操作啊(脸红
考虑反向弧的本质:反向弧增加意味着正向弧减少
所以刷T到S的最大流

答案是可行流流量-T到S最大流流量

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值