USACO4.2.1 网络流最大流算法
来源:互联网 发布:淘宝质量好的牛仔裤 编辑:程序博客网 时间:2024/06/01 20:48
/*ID:hk945801TASK:ditchLANG:C++*/#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int inf=10000001;struct node{int c,f;}a[201][201];int p[201*201],d[201*201],pre[201];int main(){int i,j,k,m,n;int x;freopen("ditch.in","r",stdin);freopen("ditch.out","w",stdout);cin>>m>>n; for(i=1;i<=m;i++){ int x,y,z; scanf("%d%d%d",&x,&y,&z); a[x][y].c+=z; } int pd=1; while(pd){ pd=0; int fi=0,l=1; d[1]=1; for(i=1;i<=n;i++)p[i]=0; p[1]=1; while(fi<l){ fi++; x=d[fi]; for(i=2;i<=n;i++) if(!p[i] && (a[x][i].c>a[x][i].f || a[i][x].f>0)){ d[++l]=i; p[i]=1; pre[i]=x; if(i==n){pd=1;break;} } if(pd==1)break; } if(pd==0)break; int min=inf; x=n; while(x!=1){ if(a[pre[x]][x].c>a[pre[x]][x].f&& a[pre[x]][x].c-a[pre[x]][x].f<min) min=a[pre[x]][x].c-a[pre[x]][x].f; else if(a[x][pre[x]].f>0 && a[x][pre[x]].f<min) min=a[x][pre[x]].f; x=pre[x]; } x=n; while(x!=1){ if(a[pre[x]][x].c>a[pre[x]][x].f) a[pre[x]][x].f+=min; else if(a[x][pre[x]].f>0) a[x][pre[x]].f-=min; x=pre[x]; }}int ans=0; for(i=2;i<=n;i++) ans+=a[1][i].f; cout<<ans<<endl;return 0;}
0 0
- USACO4.2.1 网络流最大流算法
- 【USACO4.2.1】草地排水 网络流 最大流
- 【USACO4.2.1】草地排水 最大流
- [USACO4.2]草地排水(网络流最大流模板)
- SAP解决USACO4.2.1网络流问题
- 网络流基本算法实现——以USACO4.2.1为例
- 洛谷P1344 [USACO4.4]追查坏牛奶Pollutant Control(网络流, 最大流最小割)
- USACO4.2 网络流模板题
- 【USACO4.4.2】追查坏牛奶 网络流
- 最大网络流算法
- 网络最大流算法
- 最大网络流算法
- 【USACO4.2】草地排水Drainage Ditches(最大流)
- 网络流的初步应用[USACO4.2]草地排水
- 网络流-最大流算法
- 算法设计 最大网络流
- 网络最大流算法小结
- 最大网络流 EK 算法
- android 常用方法
- Gallery单独使用,Gallery和ImageSwitcher组件结合使用的例子
- 4.3 不要编写返回引用可变对象的访问器方法
- 线程的状态与调度
- 5、可以为空的值类型int?
- USACO4.2.1 网络流最大流算法
- Android listview addHeaderView 和 addFooterView 详解
- ACE模板知识积累-CSS部分-1-.space
- Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.int
- java中4种访问修饰符的区别
- phpstorm10 常用快捷键
- 第五章第六节-装配集合
- solr-5.4.1部署到Tomcat
- 缓存