poj 1273 Drainage Ditches_最大流模版
2013-09-24 22:56
253 查看
#include <iostream> #include<cstdio> #include<queue> #include<cstring> using namespace std; #define INF 0xfffffff #define N 210 int cap ,flow ; int pre ,dist ; int ek(int sta,int end){ int i,curr,sum=0; memset(flow,0,sizeof(flow)); while(1){ memset(pre,0,sizeof(pre)); memset(dist,0,sizeof(dist)); queue<int> q; q.push(sta); dist[sta]=INF; pre[sta]=sta; while(!q.empty()){ curr=q.front(); q.pop(); for(i=1;i<=end;i++) if(!dist[i]&&flow[curr][i]<cap[curr][i]){ dist[i]=min(dist[curr],cap[curr][i]-flow[curr][i]); pre[i]=curr; q.push(i); } } if(dist[end]==0) break; for(i=end;i!=sta;i=pre[i]){ curr=pre[i]; flow[curr][i]+=dist[end]; flow[i][curr]-=dist[end]; } sum+=dist[end]; } return sum; } int main(int argc, char** argv) { int n,m,i,a,b,w; while(scanf("%d%d",&n,&m)!=EOF){ memset(cap,0,sizeof(cap)); for(i=1;i<=n;i++){ scanf("%d%d%d",&a,&b,&w); cap[a][b]+=w; } printf("%d\n",ek(1,m)); } return 0; } #include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define N 210 #define INF 0xfffffff int flow ,dist ,m,n; int bfs(){ memset(dist,-1,sizeof(dist)); dist[1]=0; queue<int> q; q.push(1); while(!q.empty()){ int k=q.front(); q.pop(); for(int i=1;i<=n;i++){ if(flow[k][i]>0&&dist[i]<0){ dist[i]=dist[k]+1; q.push(i); } } } if(dist >0) return 1; else return 0; } int dfs(int x,int mx){ int i,a; if(x==n) return mx; for(i=1;i<=n;i++){ if(flow[x][i]>0&&dist[i]==dist[x]+1&&(a=dfs(i,min(mx,flow[x][i])))){ flow[x][i]-=a; flow[i][x]+=a; return a; } } return 0; } int main(){ int i,b,a,w,ans,res; while(scanf("%d%d",&m,&n)!=EOF){ memset(flow,0,sizeof(flow)); for(i=0;i<m;i++){ scanf("%d%d%d",&a,&b,&w); flow[a][b]+=w; } ans=0; while(bfs()) while(res=dfs(1,INF)) ans+=res; printf("%d\n",ans); } }
相关文章推荐
- 添加文件到Sdcard出现Failed to push selection: Invalid argument问题
- HDU 1239 Calling Extraterrestrial Intelligence Again
- DB_DOMAIN的一点知识
- hdu1848 Fibonacci again and again
- hdu 1021Fibonacci Again
- uva 573 The Snail
- 你需要了解的未来:Andrew Ng,与他的Google Brain项目及人工智能实践
- paip.提高用户体验----增添开始菜单类似360小助手按钮总结
- paip.invalid conversion from FormWdg* to SOCKET {aka unsigned int}
- Project Baselines and the Triple Constraints
- 错误 2 (net::ERR_FAILED): 未知错误
- Configuration System Failed to Initialize
- 支持视音频和图片无线传屏以及屏幕镜像的Airplay的前世今生
- trainging contest#1(2011大连现场赛)C BY bly
- toj1036 Rails
- The Definition of Air Jordan 11 For Sneaker Amateur
- shopt nullglob, failglob, extglob, globstar用法
- 直接插入排序(Straight Insert Sort)
- HDU 2457 DNA repair(AC自动机 + DP 入门)
- QWaitConditon应用