题意:给出一个有向强连通图,每条边有两个值分别是破坏该边的代价和把该边建成无向边的代价(建立无向边的前提是删除该边)问是否存在一个集合S,和一个集合的补集T,破坏所有S集合到T集合的边代价和是X,然后修复T到S的边为无向边代价和是Y,满足Y
分析:无源汇有上下界可行流判定, 原来每条边转化成 下界为D 上界为 D+B ,判断是否存在可行流即可。
如果存在可行流 那么说明对于任意的...
分类:
其他好文 时间:
2014-08-23 17:44:41
阅读次数:
245
#pragma warning(disable:4996)#include #include #include #include #include #include #include #include #include #include using namespace std;#define max...
分类:
其他好文 时间:
2014-08-14 03:43:37
阅读次数:
232
给你一个强连通的有向简单图,每条边有D, B两个权值,设S为点集的一个非空真子集
问:是否对于任意的集合S,都有sum (D(i, j))
比赛的时候完全没有思路啊。。。最大流果然还是白板
思路:将D值作为边的下界,D + B作为边的上界,如果存在可行流,那么对于任意集合S
都有流量小于等于边的容量上界,大于等于边的容量下界,即D(i, j)
这就将问题转化为了裸的有下界的最大...
分类:
其他好文 时间:
2014-08-13 10:29:15
阅读次数:
224
学习别人的方法。大致是:
无源汇的最大流 : 新建源点,汇点,sum[i]为每个点进来的下界流之和减去出去的下界流之和,如果sum[i] > 0,由源点向该点建一条边,上界为sum[i],下界为0
如果sum[i]
#include
#include
#include
#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-08-06 15:00:51
阅读次数:
219
最大流:DINIC or SAP最小费用最大流:SPFA+增广(费用的值较离散) or ZKW(费用的值集中)有源汇的上下界最大流:新建s', t',用(i, j, l, r)表示i到j有一条下界为l上界为r的边,将每条这样的边拆成(s', j, 0, l), (i, t', 0, l), (i, ...
分类:
其他好文 时间:
2014-07-20 22:34:39
阅读次数:
261
1: /** 2: ZOJ 3229 有上下界的最大流 3: 两次求最大流的过程,非二分 4:
有源汇上下界的最大流问题, 首先连接 sink -> src, [0,INF]. 5: 根据net的正负,来建立 Supersrc 与 supersink
之间的边,做一次 maxflow. 6: 若所有...
分类:
其他好文 时间:
2014-05-08 22:39:11
阅读次数:
412