消圈法解最小费用流(poj 2175 Evacuation Plan)

消圈算法: 先求最大流, 再在Gf中寻找负费用圈并沿它增广改进: 增加附加弧(s, t), 费用大于s-t最大费用路(如VC), 弧上的初始流大于s-t最大流(如s出发的弧容量和加1)消圈算法将让尽量多的流移出附加弧, 因此得到的流是最大流. 最后附加弧可能有余量,应当忽略实际效果: 最小费用增广路算法, 因为Gf中任何s-t路和t-s一定构成负费用圈最坏情况分析: 每次找负费用圈
摘要由CSDN通过智能技术生成
消圈算法: 先求最大流, 再在Gf中寻找负费用圈并沿它增广

改进: 增加附加弧(s, t), 费用大于s-t最大费用路(如VC), 弧上的初始流大于s-t最大流(如s出发的弧容量和加1)消圈算法将让尽量多的流移出附加弧, 因此得到的流是最大流. 最后附加弧可能有余量,应当忽略

实际效果: 最小费用增广路算法, 因为Gf中任何s-t路和t-s一定构成负费用圈

最坏情况分析: 每次找负费用圈O(VE), 每次只把费用更新1, 一共需要ECM次(M为最大费用, C为容量), 在稀疏图中总时间复杂度为O(VE^2CM)=O(V^3CM)

用途:由于效率极低,因此消圈算法一般用于判断是否为最优解,而不用于求最优解

定理:一个费用流是最小费用流的充要条件是这个费用流的残量网络没有负费用圈。

poj 2175 Evacuation Plan
题意:有n个建筑物,m个避难所,已知每个建筑物的坐标和拥有的人及每个避难所的坐标和容量。建筑物i和避难所j的距离为|xi-xj| + |yi-yj| + 1。现在要求把建筑物的人都疏散到避难所。现给出一个方案:建筑物i有x[i][j]的人去j避难所
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值