HDU-1532-网络流最大流
来源:互联网 发布:专业金蝶初始数据录入 编辑:程序博客网 时间:2024/05/16 18:26
题目大意:求两点之间的最大流;
题目解析:思想就是迭代dfs找增广路径,直到找不到位置,注意要更新残余网络;
AC代码:
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<string>#include<vector>using namespace std;const int inf=0x3fffffff;const int maxn=1010;struct node{int to,cap,rev;node(int a,int b,int c){to=a;cap=b;rev=c;}};vector<node>vec[maxn];bool used[maxn];void add_edge(int from,int to,int cost){vec[from].push_back(node(to,cost,vec[to].size()));vec[to].push_back(node(from,0,vec[from].size()-1));}int dfs(int u,int v,int cost){if(u==v)return cost;used[u]=true;int i;for(i=0;i<vec[u].size();i++){node &temp=vec[u][i];if(!used[temp.to]&&temp.cap>0){int d=dfs(temp.to,v,min(cost,temp.cap));if(d>0){temp.cap-=d;vec[temp.to][temp.rev].cap+=d;return d;}}}return 0;}int max_flow(int u,int v){int flow=0;while(1){memset(used,0,sizeof(used));int res=dfs(u,v,inf);if(res==0)return flow;flow+=res;}}int main(){int n,m,i;while(scanf("%d%d",&n,&m)!=EOF){for(i=0;i<maxn;i++){vec[i].clear();}for(i=0;i<n;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);add_edge(a,b,c);}printf("%d\n",max_flow(1,m));}return 0;}
0 0
- hdu 1532 网络流-最大流 DINIC
- 图论 网络流 HDU 1532 最大流
- HDU-1532-网络流最大流
- HDU 1532 Drainage Ditches (最大网络流)
- HDU 1532 Drainage Ditches (最大网络流)
- hdu 1532 Drainage Ditches(最大网络流)
- hdu 1532 最大网络流 Drainage Ditches
- HDU 1532 Drainage Ditches 最大网络流
- HDU-1532(网络最大流)
- hdu 4292 网络最大流
- poj 1273 hdu 1532 网络流最大流 Dinic算法
- HDU 1532(网络流之最大流)
- hdu 1532 最基础的求网络最大流问题
- hdu 3572 网络流 最大流
- HDU Escape (网络流,最大流)
- HDU kebab(网络流,最大流)
- HDU-4292-网络流最大流
- HDU 3549 Flow Problem 最大网络流
- 使用PreferenceActivity时,如何获取ListPreference中选中的值
- 关于自定义可以点击的的布局
- C语言实现http的下载
- python代码-索引加分片示例
- 你知不知道 Cookie正在泄露你的隐私!
- HDU-1532-网络流最大流
- 乳腺仿体breast phantom的MATLAB实现及探讨
- 数据菜鸟的挖掘之旅(二)关联规则之Apriori算法
- Android百度地图开发
- 欢迎使用CSDN-markdown编辑器
- 11期 12月期刊自荐
- 用ChartCtrl在MFC上画图
- mapreducer数据结果输出到mysql
- 微信支付--网页版-V3-(2)