POJ 1459 ZOJ 1734 Power Network dinic 算法 网络流
2013-04-09 15:43
330 查看
裸的网络流,就是在读数据的时候,注意用while(getchar()!='(');scanf("%d,%d),%d");
然后增加超源点与超收点。我是用dinic算法,速度慢,跑了549貌似ms,貌似,希望能优化,用个什么预流推进算法试试啊。
在纠结了很久后,终于在书上把预流推进算法抄下来了,哈哈,调试了很久,一直陷入死循环,后来一看输入文件不是这个题的输入,想shi啊,有木有
贴代码 dinic 算法 :
View Code
然后增加超源点与超收点。我是用dinic算法,速度慢,跑了549貌似ms,貌似,希望能优化,用个什么预流推进算法试试啊。
在纠结了很久后,终于在书上把预流推进算法抄下来了,哈哈,调试了很久,一直陷入死循环,后来一看输入文件不是这个题的输入,想shi啊,有木有
贴代码 dinic 算法 :
View Code
#include <cstdio> #include <cstring> #include <queue> #define MAXN 110 #define INF 0x7fffffff //相当于21,4748,3647 using namespace std; int s,t; //源点和汇点 queue<int> act; int h[MAXN]; //高度 int ef[MAXN]; //余流,能流出去多少 int n,np,nc,m; int resi[MAXN][MAXN];//残留网络,每条边的权值表示容量 int min(int x,int y) { if(x <y)return x; else return y; } void pushRelabel() { int i; int sum=0; int u,p; memset(ef,0,sizeof(ef)); memset(h,0,sizeof(h)); h[s] = n+2; ef[s] = INF;//源点能往外流正无穷 ef[t] = -INF;//汇点不能往外流,所以汇点能往外流负无穷 act.push(s); while(!act.empty()) { u = act.front(); act.pop(); for(i=0; i<=n+1; ++i) { p = min(resi[u][i],ef[u]); if(p > 0 && (u==s || h[u] == h[i]+1)) { resi[u][i] -= p; resi[i][u] += p; ef[u] -= p; ef[i] += p; if(i == t) sum += p; if(i != s && i!=t) act.push(i); } } if(u != s && u != t && ef[u] > 0) { h[u]++; act.push(u); } } printf("%d\n",sum); } int main() { // freopen("in.cpp","r",stdin); int i; int u,v,val; while(~scanf("%d%d%d%d",&n,&np,&nc,&m)) { s = n; t = n+1; memset(resi,0,sizeof(resi)); for(i=0; i<m; ++i) { while(getchar()!='('); scanf("%d,%d)%d",&u,&v,&val); resi[u][v] = val; } for(i=0; i<np; ++i) { while(getchar()!='('); scanf("%d)%d",&u,&val); resi[s][u] = val; } for(i=0; i<nc; ++i) { while(getchar()!='('); scanf("%d)%d",&u,&val); resi[u][t] = val; } pushRelabel(); } return 0; }
相关文章推荐
- POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)
- POJ 1459 && ZOJ 1734--Power Network【最大流dinic】
- 【网络流EK算法&压入重标记算法】POJ 1459
- zoj 1734 || poj 1459 Power Network
- poj 1459 && zoj 1734 Power Network
- POJ 1459 网络流算法(EK)
- POJ 1459 && ZOJ 1734--Power Network【最大流dinic】
- POJ 1459 & ZOJ 1734 Power Network (网络最大流)
- poj 1459 zoj 1734 Power Network(最大流)
- 《网络流学习笔记03&&POJ1459 &&ZOJ 1734 Power Network(多源点,多汇点)》
- POJ 1459 PowerNetwork 多源点网络流入门(EK算法求最大流)
- [Poj 1459] 网络流(一) {基本概念与算法}
- poj 1459 Power Network 网络流初步,增广路算法,主要是建图麻烦
- POJ 1459 Power Network网络流初步
- POJ 1459 Power Network——(网络流入门)
- POJ 1459 Power Network(网络流)
- poj 1459 Power Network(网络流 最大流 dinic模板题)
- POJ 1459 Power Network(网络流—最大流)
- 网络流之顶点连通度 poj 1966 zoj 2182
- poj 1459 多源点网络流入门题