POJ 1273 最大流模板题
来源:互联网 发布:美化你的声音 知乎 编辑:程序博客网 时间:2024/05/22 09:48
看了三天的网络流,总算是切掉一道题了...
还是要安静下来耐心的,自信的切题啊~~嘿嘿~
#include<iostream>#include<cstdio>#include<string>using namespace std;struct edge{int f,c;}g[222][222];struct node{int l,p,a;}list[222];int N,M,ans,s,t;void init(){ int u,v,c; memset( g,0,sizeof(g) ); for( int i=0;i<N;i++ ) { scanf( "%d%d%d",&u,&v,&c ); g[u][v].c+=c; } s=1;t=M;ans=0;}int find(){ int i=1; while( i<=M&&(list[i].p!=0||list[i].l==0) )i++; if( i>M ) return 0; else return i;}bool ford(){ memset( list,0,sizeof(list) ); list[s].l=s; list[s].a=9999999; while( list[t].l==0 ) { int i=find(); if( i==0 ) return true; for( int j=1;j<=M;j++ ) { if( list[j].l==0 && (g[i][j].c||g[j][i].c) ){ if( g[i][j].c-g[i][j].f>0 ){ list[j].l=i; list[j].a=min( list[i].a,g[i][j].c-g[i][j].f ); } if( g[j][i].f>0 ){ list[j].l=-i; list[j].a=min( list[i].a,g[j][i].f ); } } } list[i].p=1; } ans+=list[t].a; return false;}void change(){ int j,m,a=list[t].a; m=t; while( m!=s ) { j=m;m=abs(list[m].l); if( list[m].l>0 ) g[m][j].f+=a; if( list[m].l<0 ) g[j][m].f-=a; }}void work(){ while(1) {bool p=ford(); if( p ) break; else change(); } printf( "%d\n",ans );}int main(){ while( scanf("%d%d",&N,&M)!=EOF ) { init(); work(); } return 0;}
- POJ 1273 最大流模板题
- POJ 1273Drainage Ditches --网络流最大流模板题
- POJ 1273 Drainage Ditche(最大流模板题)
- POJ 1273 Drainage Dithches 最大流(EK,模板题)
- [POJ 1273] Drainage Ditches 最大流 模板题
- 最大流模板更新(Dinic)...POJ-1273
- poj 1273最大流dinic算法模板
- 最大流 poj 1273 Dinic 模板
- POJ 1273 Drainage Ditches(最大流模板)
- poj 1459 最大流 Dinic模板题
- 【最大流模板题】POJ 3281 Dining
- 最小费用最大流模板 poj 2159 模板水题
- poj 网络最大流模板
- POJ 1459最大流模板
- 【最大流-ISAP】POJ-1273-网络流模板!!
- poj 1273 Drainage Ditches(最大流的EK算法模板)
- isap算法模板poj 1273gap+弧优化 最大流
- poj 1273 最大流EK增广路模板
- 黑马程序员——ADO.net基础知识
- 读书笔记—2012 4 8
- 拿得起,放得下
- 理解指针之基础篇
- Java:使用Executors创建和管理线程
- POJ 1273 最大流模板题
- linux 内存管理 自学报告
- Adroid 应用程序开发环境搭建
- SRM539-div2-3-CaptureFish
- xmlhttprequest 跨域调用的方法
- HttpClient 学习整理
- 记录一下
- 使用具有WIN7/XP风格的控件风格
- 文件分割器