费用流技巧(更新ing~)

6 篇文章 0 订阅
5 篇文章 0 订阅

SPFA算法可以处理负费用边, 但是负费用环就炸了。
ZKW更傲娇,连负费用边都不能有(我也不知道为什么)。

消圈算法的强大之处在于它可以处理负费用环(边),但是它在OI算法中的效率实在不敢恭维。
那么其实增广路算法也是可以处理负费用环(边)。


1.ZKW处理一开始(题设)就有负费用边(无负环的做法)

根据大量的数据证明,ZKW跑一开始(题设)就是全部正费用的网络是不会错的。
那我们可以把每个费用都加上一个+max, 再把最后求出来的最小费用减去最大流量×max就可以得到答案。


2.最大费用最大流(一开始(题设)无正费用环)

很多同学会直接将费用想到取反直接跑费用流,SPFA当然没有问题,但是不要忘记了ZKW会出错,所以我们还要进行1操作。

3.最小(大)费用可行流:

我不会用zkw求这个,可以去他博客,我没看懂。
这个SPFA求,要是有什么负(正)权环,GG我目前也不知道怎么办?

以最小费用可行流来讲解。
每次暴力找一条费用和最小且流量大于0的增广路,然后把它流了,一直流,直到这条增广路的费用和大于0,我们就退了。

至于证明,我还是只会感性。还记得讲SPFA费用流的时候为什么求出来的费用一定是最小呢?因为每次都找得最小,所以是最小的,我们又加了一个必须小于0的限制,所以它是最小的。(纯属口胡)

至于最大费用可行流,就是找费用和最大的增广路,并且费用和大于0就行了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值