poj 1459 Power Network 网络流
来源:互联网 发布:淘宝苹果找回是真的吗 编辑:程序博客网 时间:2024/05/14 00:36
#include<stdio.h>#include<string.h>#include<queue>#include<vector>using namespace std;using namespace std;using namespace std;const int N=1024;const int inf=1<<24;struct Edge{ int from,to,cap,flow;};vector<Edge>edges;vector<int>G[N];int n,m,s,t;int vis[N];int d[N];int cur[N];void AddEdge(int from,int to,int cap){ Edge tp; tp.from=from,tp.to=to,tp.cap=cap,tp.flow=0; edges.push_back(tp); tp.from=to,tp.to=from,tp.cap=0,tp.flow=0; edges.push_back(tp); int g_size=edges.size(); G[from].push_back(g_size-2); G[to].push_back(g_size-1);}bool BFS(){ memset(vis,0,sizeof(vis)); queue<int>Q; Q.push(s); d[s]=0; vis[s]=1; while(!Q.empty()) { int x=Q.front(); Q.pop(); for(int i=0; i<G[x].size(); i++) { Edge &e=edges[G[x][i]]; if(!vis[e.to]&&e.cap>e.flow) { vis[e.to]=1; d[e.to]=d[x]+1; Q.push(e.to); } } } return vis[t];}int DFS(int x,int a){ if(x==t||a==0) return a; int flow=0,f; for(int &i=cur[x]; i<G[x].size(); i++) { Edge &e=edges[G[x][i]]; if(d[x]+1==d[e.to]&&(f=DFS(e.to,min(a,e.cap-e.flow)))>0) { e.flow+=f; edges[G[x][i]^1].flow-=f; flow+=f; a-=f; if(a==0) break; } } return flow;}int Maxflow(int st,int ed){ int flow=0; while(BFS()) { memset(cur,0,sizeof(cur)); flow+=DFS(st,inf); } return flow;}int main(){ int j,np,nc,u,v,z,use[1024]; char ss[1024]; while(~scanf("%d%d%d%d",&n,&np,&nc,&m)) { edges.clear(); for(int i=0; i<N; i++) G[i].clear(); s=n+2; t=n+1; memset(use,0,sizeof(use)); for(int i=0;i<m;i++) { u=0;v=0;z=0; scanf("%s",ss); for(j=1;ss[j]!=',';j++) u=u*10+ss[j]-'0'; for(j++;ss[j]!=')';j++) v=v*10+ss[j]-'0'; for(j++;ss[j]!=0;j++) z=z*10+ss[j]-'0'; AddEdge(u,v,z); } for(int i=0;i<np;i++) { u=0;z=0; scanf("%s",ss); for(j=1;ss[j]!=')';j++) u=u*10+ss[j]-'0'; for(j++;ss[j]!=0;j++) z=z*10+ss[j]-'0'; AddEdge(s,u,z); } for(int i=0;i<nc;i++) { u=0;z=0; scanf("%s",ss); for(j=1;ss[j]!=')';j++) u=u*10+ss[j]-'0'; for(j++;ss[j]!=0;j++) z=z*10+ss[j]-'0'; AddEdge(u,t,z); } printf("%d\n",Maxflow(s,t)); } return 0;}
0 0
- POJ--1459[Power Network] 网络最大流
- poj 1459 Power Network(网络流+dinic)
- [POJ 1459] Power Network (网络流)
- 【网络流】 POJ 1459 Power Network
- Power Network (poj 1459 网络流)
- poj 1459 Power Network (网络最大流)
- poj 1459 Power Network 网络流
- POJ 1459 Power Network 网络流
- 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 1459 Power Network(网络流)
- POJ 1459 Power Network(网络流—最大流)
- POJ 1459Power Network(网络流之最大流)
- POJ 1459-Power Network(网络流_最大流)
- 文章标题
- 多线程与网络B
- 初识Python
- win7(64位)php5.5-Apache2.4-mysql5.6环境安装
- 第十五周第四天
- poj 1459 Power Network 网络流
- Monkey之初识--环境配置
- linux下安装mongo
- new/delete 和malloc/free 的区别一般汇总
- PHP快速排序算法
- BAMBOO&ROSY编舞,灵感来自THE SEA【大型圣诞狂欢派对系列宣传】
- 第11讲 项目1-分离各位数
- 传智播客Java学习路线图-适合自学者从入门到项目开发
- 回文数猜想(1282)