最小费用最大流,一般解法如下:
在流量基础上,每条边还有权费用,即单位流量下的所需费用。在最大流量下,求最小费用。解法:在最大流算法基础上,每次按可行流增广改为每次用spfa按最小费用(用单位费用)增广,每次按每条边一单位费用求到达终点的最小费用(最短路),那么每次找到“最短路”(只是一条路,不是多条(dinic每次可以增广多条)),之后按这条路最大
可能流量增广(取这条路上残量最小的),直到...
分类:
其他好文 时间:
2014-05-18 18:36:55
阅读次数:
267
MatrixTime Limit: 2000/1000 MS (Java/Others)Memory
Limit: 32768/32768 K (Java/Others)Total Submission(s): 1394Accepted
Submission(s): 758Problem Descr...
分类:
其他好文 时间:
2014-05-16 05:32:21
阅读次数:
332
题目链接:http://poj.org/problem?id=3469
Dual Core CPU
Time Limit: 15000MS
Memory Limit: 131072K
Total Submissions: 18147
Accepted: 7833
Case Time Limit: 5000MS
...
分类:
其他好文 时间:
2014-05-15 06:23:05
阅读次数:
271
大意:小明喜欢带他的朋友们逛自己的农场。农场有n块地,屋舍位于1号,谷仓位于n号。有m条路连接这些地,路是无向的,每条路长度已知。他想设计一条线路,从1出发,到n,再回到1,且同一条路不走两遍。问最短的行程是多少。
分析:可建模为最小费用最大流。从1出发,到n,再回到1,相当于找到两条从1到n的路径且二者不能有交集。
对于每条路,费用为长度,容量为1,这样就限制了只能走一次。新建一个顶点连向1,费用为0,容量为2.,作为等价源点。同理再建一个等价汇点。
因为重边的存在,图的存储结构为邻接表而非邻接矩阵...
分类:
其他好文 时间:
2014-05-15 01:40:24
阅读次数:
366
Stoer-Wagner 算法
题目大意:有重边的无向图,至少删去多少条边能使其变为非连通图?
分析:传统最小割最大流算法需要枚举汇点,复杂度为O(n^4)以上,故有时会超时。本题用Stoer-Wagner 算法。...
分类:
其他好文 时间:
2014-05-09 15:23:18
阅读次数:
228
题目来源:HDU 3081 Marriage Match II
题意:
思路:
错误代码 纠结不知道哪错了 先放一放
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 1010;
const int INF = 999999999;
struct Edg...
分类:
其他好文 时间:
2014-05-09 02:38:25
阅读次数:
264
1: /** 2: POJ 3801 有上下界的最小流 3: 4:
1、对supersrc到supersink 求一次最大流,记为f1。(在有源汇的情况下,先使整个网络趋向必须边尽量满足的情况) 5: 2、添加一条边sink
-> src,流量上限为INF,这条边记为p。(构造无源汇网络) 6: 3...
分类:
其他好文 时间:
2014-05-08 23:31:26
阅读次数:
476
1: /** 2: ZOJ 3229 有上下界的最大流 3: 两次求最大流的过程,非二分 4:
有源汇上下界的最大流问题, 首先连接 sink -> src, [0,INF]. 5: 根据net的正负,来建立 Supersrc 与 supersink
之间的边,做一次 maxflow. 6: 若所有...
分类:
其他好文 时间:
2014-05-08 22:39:11
阅读次数:
412
题目来源:HDU 4240 Route Redundancy
题意:求最大流与一条流最大的路径的比值 前者最大流求出 后者是每一条路的最小值再取大
思路:我用的是dinic 可以在DFS的时候在传递一个参数 表示当前增广路可以通过最大的流量 然后当x==t 到达汇点时 在取他们的最大值
#include
#include
#include
#include
#include
usi...
分类:
其他好文 时间:
2014-05-08 10:58:21
阅读次数:
319
题目来源:HDU 4183 Pahom on Water
题意:若干个区域 每个区域有一个值 区域是圆 给出圆心和半径
从起点(值为400.0)到终点(值为789.0)满足走相交的圆 并且值必须递增 然后从终点到起点 值必须递减 此外区域只能去一次
思路:建图 相互能走的区域连一条边 因为只能走一次 所以拆点 如果没有来回 只有去 那么判断最大流为1即可
现在还要回来 并且回来的条件和...
分类:
其他好文 时间:
2014-05-08 04:22:10
阅读次数:
303