poj 1459 最大流
来源:互联网 发布:温州网络学堂手机版 编辑:程序博客网 时间:2024/04/30 03:39
#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;int f[105][105],st,en,n,par[105],c[105][105],ans;void init(){ memset(f,0,sizeof(f)); memset(c,0,sizeof(c)); st=n+1; en=n+2; ans=0;}void proc(){ par[en]=0; while(par[en]!=-1) { queue<int> que; que.push(st); memset(par,-1,sizeof(par)); par[st]=st; while(que.size()&&par[en]==-1) { int tp=que.front(); //cout<<tp<<2333333<<endl; que.pop(); for(int j=1;j<=en;j++) { if(par[j]==-1) { if(f[tp][j]<c[tp][j]) { par[j]=tp; que.push(j); } else if(f[j][tp]) { par[j]=-tp; que.push(j); } } } } if(par[en]!=-1) { int minn=0x3f3f3f3f,now=en; while(now!=st) { int prenow=par[now]; if(prenow<0) minn=min(minn,f[now][-prenow]); else minn=min(minn,c[prenow][now]-f[prenow][now]); now=abs(prenow); } now=en; //cout<<ans<<' '<<minn<<endl; ans+=minn; while(now!=st) { int prenow=par[now]; if(prenow<0) f[now][-prenow]-=minn; else f[prenow][now]+=minn; now=abs(prenow); } } } printf("%d\n",ans);}int main(){ int np,nc,m,tp,x,y; while(scanf("%d%d%d%d",&n,&np,&nc,&m)!=EOF) { init(); while(m--) { while(getchar()!='('); scanf("%d,%d)%d",&x,&y,&tp); c[x+1][y+1]=tp; } while(np--) { while(getchar()!='('); scanf("%d)%d",&y,&tp); c[st][y+1]=tp; } while(nc--) { while(getchar()!='('); scanf("%d)%d",&x,&tp); c[x+1][en]=tp; } proc(); } return 0;}
0 0
- poj 1459(最大流)
- POJ 1459 最大流
- poj 1459 (最大流)
- poj 1459 最大流
- POJ 1459 最大流
- poj 1459 最大流
- poj 1459(最大流)
- poj 1459 最大流问题
- poj 1459 多源汇最大流
- POJ 1459最大流模板
- poj 1459 最大流(最大消费电量)
- (最大流) poj 1459 Power Network
- POJ--1459[Power Network] 网络最大流
- POJ-1459 Power Network【最大流】
- POJ 1459 Power Network 最大流
- POJ 1459 (最大流 入门题)
- poj-1459-最大流-edmondskarp算法
- poj 1459 Power Network(最大流)
- C-数据结构-图-深、广遍历
- react native 和 小米 MIUI
- JS创建对象初步理解(工厂,构造,原型)
- Android中如何判断是否连接网络
- 图片轮播 JavaScript 的代码 事件
- poj 1459 最大流
- C-数据结构-图-应用
- java的动态代理详解
- 列表选择框Spinner
- word笔记整理
- background first-child 选择器
- vpxuser口令变化
- 线性筛选欧拉函数
- 支持向量机_3: Kernel