网络流
文章平均质量分 60
leolin_
这个作者很懒,什么都没留下…
展开
-
【转】网络流基础
mark一下这个blog,挺好的! http://chhaj5236.blog.163.com/blog/static/1128810812009827112857794/转载 2011-08-09 01:21:59 · 457 阅读 · 0 评论 -
【最小费用最大流】POJ 2195
可以KM,也可以费用流,最近学费用流,所以用一下,debug真浪费时间,以为spfa有问题,原来是计数时出错。。。囧啊,菜啊,话说poj 2516到现在还不知道wa哪里,抓狂啊!!!#define inf 1<<30#define N 222int cap[N][N];int cost[N][N];int pre[N];int dis[N];bool vis[N];int min原创 2012-01-20 02:48:40 · 600 阅读 · 0 评论 -
【网络流各种模板】
EK 复杂度O(V*E*E)#define N 204 int c[N][N];//边容量 int f[N][N];//边实际流量 int pre[N];//记录增广路径 int res[N];//残余网络 queue qq; void init(){ while(!qq.empty())qq.pop(); memset(c,0,siz原创 2012-01-16 21:46:08 · 2420 阅读 · 0 评论 -
【有上下界的网络流】
相对于一般的网络流,有上下界的网络流的某些边多出了流量下界的限制,如边u->v,上下界为high、low,如果有流经过这条边,这个流必须在[low,high]这个区间内。这类题目主要要求解决下面三个问题,“有源汇、无源汇的可行流”、“有源汇的最大流”、“有源汇的最小流”,注意这里所说的源汇是原网络中的源汇,分别记为s、t。 这类题目的难点在于下界的限制很难处理,我们将所有有下界限制的边中分离转载 2012-01-18 03:19:07 · 4111 阅读 · 0 评论 -
【最大流】HDU 3572
http://acm.hdu.edu.cn/showproblem.php?pid=3572题意:给出n个任务+m台机器,还有一个任务处理时限+开始时间+结束时间,一个时刻里一台机器只能处理一个任务,但是一个任务可以在不同机器处理,问能否处理完所有任务?方法:最大流。这个题的建图算是经典,因为限定每个时刻每台机器只能处理一个任务,所以可以把时间点分配给各个合法的机器...具体是先设定一个超原创 2012-03-14 20:11:34 · 1106 阅读 · 1 评论 -
【最小割】ustc 1280
http://acm.ustc.edu.cn/ustcoj/problem.php?id=1280这题是中国科大“百分点科技杯"ACM除夕挑战赛 的题目,当时做不出,后来想了一下,TLE1次,wa一次就过了这题去掉最小费用和的边使得最短路变长,方法是先求一次最短路,然后建新图,图中存在的边当且仅当(u,v) dis[u]+w(u,v)=dis[v],题目就变成求切掉最小的边,切完后最短路必原创 2012-01-25 20:19:33 · 652 阅读 · 0 评论 -
【最小费用最大流】
每次在s-t之间找出费用最小的一条路径即单源最短路,如果t点不再被访问到,则算法终止。否则,按着最短路径找出最小剩余容量c,最大流量加上c,再更新最短路径上的边,前向弧减去c,反向弧加上c,并且造一条逆向的费用边,最小费用加上每条边的花销,每条边的花销=单位费用*c。原创 2012-01-20 21:30:00 · 476 阅读 · 0 评论 -
【最小费用最大流】POJ 2516【unsolved】
妈的!!!wa死,不知道死在哪里。。。先放着#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace原创 2012-01-20 00:40:24 · 475 阅读 · 0 评论 -
【floyd+拆点+二分答案+网络流】POJ 2391
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define LL long lo原创 2012-01-17 19:08:34 · 833 阅读 · 0 评论 -
【unsolved最小割】POJ 1815
ISAP//#include #include #include //#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#define原创 2012-01-17 13:34:23 · 491 阅读 · 0 评论 -
【网络流】
放假以来把网络流看来几篇,今天终于有点感觉,网上很多资料,我认为网络流最难理解的是加反向边,这个东西纠结了很久,网上搜到一个blog才领悟到一句真理:“反向边的作用就是给程序一个可以后悔的机会”,详细请看下面的文章,由于自己对网络流还是vegetables bird,所以只好转一下人家写的好文章。网络流(Network Flow) 将每条有向转载 2012-01-15 16:00:35 · 23022 阅读 · 4 评论 -
【网络流EK算法&压入重标记算法】POJ 1459
这里需要加上超级源点和超级汇点,分别是n和n+1,然后用EK求最大流,因为EK的复杂度是O(V*E*E),所以时间很慢,网络流还有其他更优化的算法,但暂时不懂,学会了再做一遍比较一下效率。。。这里的输入有一点点恶心,用sscanf分离数字和符号EK算法:625ms#define MIN INT_MIN#define MAX INT_MAX#define N 110int min(原创 2012-01-15 17:10:09 · 1505 阅读 · 0 评论 -
【混合图欧拉回路】POJ 1637
混合图的欧拉回路问题。 混合图就是边集中有有向边和无向边同时存在。这时候需要用网络流建模求解。 建模: 把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。 因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。 好了,现在每个点入度和出度之差均为偶数。那么将这原创 2012-01-15 22:45:50 · 1480 阅读 · 0 评论 -
【网络流】
在一張圖上面任意取一個源點與匯點不同側的割。定義流過此割的流量:由源點側流入到匯點側的總流量,減去由匯點側流回到源點側的總流量。定義橫跨此割的容量:由源點側橫跨到匯點側的總容量。根據瓶頸的概念,流過此割的流量會小於等於橫跨此割的容量。因此「最大流的流量」等於「管線容量的最小割」。原创 2011-11-20 02:01:23 · 513 阅读 · 0 评论 -
【最小费用最大流+邻接表】POJ 2135
因为有两条不同路径,所以可以这样构图:超级源点s->1,容量为2,边权为0,n->超级汇点t,容量为2,边权为0,其他的点容量为1,边权是输入的数据,这样就保证了肯定有两条不同的路径,而且模型肯定满流,因为这题有重边,所以不能用邻接矩阵,只能用邻接表#define inf 1<<30#define N 10050struct node{ int u,v,cap,w; int原创 2012-01-20 04:34:16 · 814 阅读 · 0 评论