算法学习—费用流

对于某些边能走k次但费用最多只能加h次的边(h<=k),可以采用拆点的方法。

比如点 i 到汇点 t ,要求点 i 到汇点 t 这条边上的费用只能被计算1次。

如果题目问的是 求最大费用的话,可以将点 i 拆成u, v2个点。u到v建立2条边,其中1条流量为1, 费用为原费用的相反数(保证求最小费用最大流时这条边优先被选中),另外一条流量为INF,费用为0。最终得到的最小费用的相反数即为题目所求的最大费用。
如 poj3422 http://poj.org/problem?id=3422

如果题目问的是 求最小费用??????
如UVALive 6868 http://acm.hust.edu.cn/vjudge/contest/128157#problem/D
这题正解不是费用流,我想用费用流做,做不出来。

https://blog.sengxian.com/algorithms/clearcircle
费用流-消圈算法讲得很清楚明了的,mark~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值