hdu 1532 Drainage Ditches(最大流)
2017-04-23 00:49
246 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532
题意:求从1到m的最大流(在下面的代码中n,m互换了)。
解题方案:Edmonds Karp算法求最大流(关于算法中为什么要用反向边,这篇博客给出了很好地解释)。
题意:求从1到m的最大流(在下面的代码中n,m互换了)。
解题方案:Edmonds Karp算法求最大流(关于算法中为什么要用反向边,这篇博客给出了很好地解释)。
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <string> #include <cmath> #include <vector> #include <queue> #include <stack> #include <set> #include <map> using namespace std; #define FOR(i,k,n) for(int i=k;i<n;i++) #define FORR(i,k,n) for(int i=k;i<=n;i++) #define scan(a) scanf("%d",&a) #define scann(a,b) scanf("%d%d",&a,&b) #define scannn(a,b,c) scanf("%d%d%d",&a,&b,&c) #define mst(a,n) memset(a,n,sizeof(a)) #define ll long long #define N 205 #define mod 1000000007 #define INF 0x3f3f3f3f const double eps=1e-8; const double pi=acos(-1.0); int cap ; int pre ; int n,m; int Bfs(int s,int t) { mst(pre,-1); queue<int> q; pre[s]=s; q.push(s); int d=INF; while(!q.empty()) { int cur=q.front(); q.pop(); for(int i=1;i<=n;i++) { if(pre[i]==-1&&cap[cur][i])//pre数组记录路径的同时也可以用作vis数组进行标记 { pre[i]=cur; d=min(d,cap[cur][i]); if(i==t) return d; q.push(i); } } } return 0; } int EK(int s,int t) { int flow=0,d; while(d=Bfs(s,t)) { for(int i=t;i!=s;i=pre[i]) { cap[pre[i]][i]-=d; cap[i][pre[i]]+=d; } flow+=d; } return flow; } int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); while(cin>>m>>n) { mst(cap,0); int u,v,c; for(int i=0;i<m;i++) { cin>>u>>v>>c; cap[u][v]+=c;//题目输入有重边 } cout<<EK(1,n)<<endl; } return 0; }
相关文章推荐
- hdu 1532 Drainage Ditches 最大流 dinic算法
- HDU1532 Drainage Ditches【最大流】【Edmond-Karp】
- HDU_1532_最大流
- hdu 1532 Drainage Ditches(网络流之最大流EdmondsKarp)
- hdu 1532 Drainage Ditches (最大流EK算法)
- Hdu 1532 Drainage Ditches - 最大流入门
- poj 1273 && hdu 1532 Drainage Ditches (网络最大流)
- HDU1532_Drainage Ditches_最大流模板题
- HDU-1532 Drainage Ditches (最大流,EK算法模板)
- HDU-1532(网络最大流)
- hdu 1532 Drainage Ditches(图论:最大流增广路)
- hdu 1532 网络最大流
- HDU 1532 Drainage Ditches——最大流EK算法
- hdu - 1532 最大流 ISAP算法
- poj 1273 & hdu 1532 Drainage Ditches(最大流 )EK,dinic模板
- hdu 1532 Drainage Ditches(最大流之Ford-Fulkerson算法)
- HDU_1532 && HDU_3549(最大流EK算法模板)
- HDU 1532 Drainage Ditches【E-K 最大流】
- HDU - 1532 Drainage Ditches解题报告(网络流 最大流魔板题)
- hdu 1532 网络流-最大流 DINIC