PKU1459 Power Network - 最大流
来源:互联网 发布:汽车 蒸发器 设计软件 编辑:程序博客网 时间:2024/05/03 21:26
模板题,不说了,整理一下模板:
- /*
- PKU1459 Power Network
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <memory.h>
- #define clr(a) memset(a,0,sizeof(a))
- #define N 200
- #define INF (1<<25)
- int EdmondsKarp(int g[][N],int n,int s,int t,int f[][N])
- {
- int i,j,k,c,head,tail,flow=0 ;
- int r[N][N];
- int prev[N],visit[N],q[N];
- for(i=0;i<n;i++)for(j=0;j<n;j++)
- {
- f[i][j]=0 ;
- r[i][j]=g[i][j];
- }
- //初始化流量网络和残留网络
- while(1)
- {
- //在残留网络中找到一条s到t的最短路径
- head=tail=0 ;
- memset(visit,0,sizeof(visit));
- q[tail++]=s ;
- prev[s]=-1 ;
- visit[s]=1 ;
- while(head<tail)
- {
- //宽度优先搜索从s到t的最短路径
- k=q[head++];
- for(i=0;i<n;i++)
- if(!visit[i]&&r[k][i]>0)
- {
- visit[i]=1 ;
- prev[i]=k ;
- if(i==t)goto next ;
- q[tail++]=i ;
- }
- }
- next :
- if(!visit[t])break ;
- //流量已达到最大
- for(c=INF,j=t;j!=s;j=i)
- {
- i=prev[j];
- if(c>r[i][j])c=r[i][j];
- }
- //下面改进流量
- for(j=t;j!=s;j=i)
- {
- i=prev[j];
- f[i][j]+=c ;
- f[j][i]=-f[i][j];
- r[i][j]=g[i][j]-f[i][j];
- r[j][i]=g[j][i]-f[j][i];
- }
- flow+=c ;
- }
- return flow ;
- }
- int g[N][N];
- int f[N][N];
- int main()
- {
- int i,j,k,x,y;
- int n,np,nc,m;
- int s,t;
- while(scanf("%d%d%d%d",&n,&np,&nc,&m)!=EOF){
- //init
- clr(g); clr(f);
- //input
- for(i=0;i<m;i++){
- scanf(" (%d,%d)%d",&x,&y,&k); g[x][y]=k;
- }
- s=n++; t=n++;
- for(i=0;i<np;i++){
- scanf(" (%d)%d",&x,&k); g[s][x]=k;
- }
- for(i=0;i<nc;i++){
- scanf(" (%d)%d",&x,&k); g[x][t]=k;
- }
- //output
- printf("%d/n",EdmondsKarp(g,n,s,t,f));
- }
- return 0;
- }
- PKU1459 Power Network - 最大流
- dinic算法 最大流 PKU1459
- POJ1459--Power Network(最大流)
- poj1459 最大流 Power Network
- poj1459 Power Network (最大流)
- Power Network poj1459 最大流
- POJ1459[Power Network]--最大流
- pku 1459 Power Network(最大流)
- (最大流) poj 1459 Power Network
- POJ--1459[Power Network] 网络最大流
- POJ-1459 Power Network【最大流】
- POJ 1459 Power Network 最大流
- Power Network 最大流基础 hoj
- poj Power Network(最大流)
- poj 1459 Power Network(最大流)
- poj 1459 Power Network(最大流)
- Poj 1459 Power Network 最大流
- poj_1459 Power Network(多源多匯最大流)
- C--如何定义复杂的类型声明
- C#语言实现创建,删除和移动文件夹
- 编译运行symbian程序(如何打开一个symbian工程)
- UDA1341TS学习笔记
- C# 参考之转换关键字:operator、explicit与implicit
- PKU1459 Power Network - 最大流
- VC网络编程基础
- Top 100 Blogs for Development Managers
- Delphi/VisualJ++/.NET/C#之父-Anders Hejlsberg
- 漫谈权限系统之技术策略以及基于RBAC的实现
- 罪恶与美德
- KEEP WALKING
- 大型网站架构演变和知识体系
- 内置迭代器的双向循环链表