【DayDayUp】【算法_图_网络流_之三_最小费用最大流】(待补全)
来源:互联网 发布:老男孩网络上课方式 编辑:程序博客网 时间:2024/06/06 15:54
【坚持不能偷懒】
网络流这块有点懵逼,所以一起搞一下
最小费用最大流,下面介绍的是常规做法,比较裸
思路是:
记Flow为剩余流量,Cost为单位流量价格,S为源点,T为汇点
每次在【剩余图】中增广一条【最小单位流量费用】的增广路
怎么做到呢,凡是Flow不为0,表示一条路可以走
然后我们找一条S到T的(可以走的,最小Cost和的路)
那么从S到T的【单位流量消耗】是最小的
然后,看看这条路能提供多少流量
找这条路就很easy了,直接把Cost当作距离,Flow不为0作为是否存在路径
跑一发最短路,通常用的是SPFA跑
建图就是
正向边的流量为 flow单价为 cost
反向边的流量为 0 单价为 - cost
PS:裸的SPFA遇到负环会懵逼,但网上套板子过了到题,好像没管
POJ 2135
N点M边,无向非完全图,边上有权重(代价)
问从N走到M再回来,一条边最多走一次的最小代价
解:
建一个S到1,flow = 2 cost = 1
建一个N到T,flow = 2 cost = 1
然后对于 from to cost 的无向边
建 from to flow = 1 cost
和 to from flow = 1 cost 的两条边
这样跑出来的最大流就是结果
http://blog.csdn.net/stillxjy/article/details/52047189
模板参考如上blog
注意的是,初始化的时候,点数因为要加上自己做的大源点和大汇点
初始化的n是n+2,不然跑不出来……(这是血泪的教训)
——————————待补全———————————
1、SPFA跑负环会炸毛么
2、路径怎么搞出来
3、算法复杂度和优化
- 【DayDayUp】【算法_图_网络流_之三_最小费用最大流】(待补全)
- 【DayDayUp】【算法_图_网络流_之二_Dinic层次图与最小费最大流的概述】(待续)
- 【DayDayUp】【算法_图_网络流_之一_增广路】
- 【DayDayUp】【算法_图_哈密顿回路_之一_回溯法】(待补完)
- 【算法】图论_网络流_费用流
- 【算法】图论_网络流_最大流
- Edmonds-Karp算法_网络流_最大流问题
- 【DayDayUp】【算法_图_强连通_之一_Kosaraju算法和Tarjan算法】
- 【DayDayUp】【算法_图_欧拉回路_之一_Fleury (弗罗莱) 算法】
- 【DayDayUp】【算法_图_最短路_之一_Dijkstra和几种优化姿势】
- 【DayDayUp】【算法_图_最短路_之二_SPFA最劣、Dij堆优化&Johnson(结点对最短路)】(待续)
- 【DayDayUp】【算法_搜索_A* 和 IDA*】
- 【DayDayUp】【算法_小技巧之一_建图】
- SSL 2603_最小路径覆盖问题_网络流
- 网络流_最大流_POJ 3281
- (网络流_最大流)Flow Problem
- 洛谷 3376_[模板]网络最大流
- PIGS(最大流_增广路算法)
- map的用法
- Android系统coredump
- jsonp跨域原理
- mycopy.c
- 数据结构之二叉树基础一
- 【DayDayUp】【算法_图_网络流_之三_最小费用最大流】(待补全)
- 【NOI2014模拟7.11】数学题
- unity Profiler性能分析
- 简单的验证码图片生成
- 找出质数算法之二
- laravel 163邮箱
- leetcode19~Remove Nth Node From End of List
- 习题2
- eclipse创建android项目,无法正常预览布局文件