hihoCoder 1369 网络流一·Ford-Fulkerson算法 (网络流学习#1 记录)
2016-10-13 21:31
471 查看
题目链接:http://hihocoder.com/problemset/problem/1369
代码:
View Code
这个是我第一次在hiho上做的网络流的题目。。好像还是套的别人的ek模板。
代码:
#include<cstdio> #include<queue> #include<cstring> #include<algorithm> #include<cstdlib> #define INF 0x3f3f3f3f using namespace std; int mp[505][506]={0}; bool visit[506]; int pre[506]; int m,n; bool bfs(int s,int t) //寻找一条从s到t的增广路,若找到返回true { int p; queue<int>q; memset(pre,-1,sizeof(pre)); memset(visit,false,sizeof(visit)); pre[s]=s; visit[s]=true; q.push(s); while(!q.empty()) { p=q.front(); q.pop(); for(int i=1;i<=n;i++) { if(mp[p][i]>0&&!visit[i]) { pre[i]=p; visit[i]=true; if(i==t) return true; q.push(i); } } } return false; } int EdmondsKarp(int s,int t) { int maxflow=0,d,i; while(bfs(s,t)) { d=INF; for(i=t;i!=s;i=pre[i]) d=d<mp[pre[i]][i]? d:mp[pre[i]][i]; for(i=t;i!=s;i=pre[i]) { mp[pre[i]][i]-=d; mp[i][pre[i]]+=d; } maxflow+=d; } return maxflow; } int main() { int a,b,c; scanf("%d%d",&n,&m); for(int i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); mp[a][b]+=c; } printf("%d\n",EdmondsKarp(1,n)); }
View Code
这个是我第一次在hiho上做的网络流的题目。。好像还是套的别人的ek模板。
相关文章推荐
- hihoCoder 1394 : 网络流四·最小路径覆盖 (网络流学习#4 记录)
- hihoCoder 1393 网络流三·二分图多重匹配 (网络流学习#3 记录)
- hihoCoder 1378 网络流二·最大流最小割定理 (网络流学习#2 记录)
- hihoCoder 网络流五·最大权闭合子图 (网络流学习#5 记录)
- hiho一下 第119周 #1398 : 网络流五·最大权闭合子图 【最小割-最大流--Ford-Fulkerson 与 Dinic 算法】
- hihoCoder 九十二周 数论一·Miller-Rabin质数测试 (数论 筛素数)
- hihoCoder - hiho一下 第二十六周 - A - 最小生成树一·Prim算法
- 网络流算法--Ford-Fulkerson方法及其多种实现
- [转] 网络流算法--Ford-Fulkerson方法及其多种实现
- poj 3281 Dining 【图论-网络流-最大流-EK&Ford-Fulkerson】
- 初识网络流(一般增广路算法-Ford-Fulkerson)
- hihoCoder 1097 : 最小生成树一·Prim算法
- USACO-Section 4.2 The Perfect Stall (二分图最大匹配[匈牙利算法[DFS]||网络流[Ford-Fulkerson]])
- cmake 学习之路 记录中间所遇到过的所有错误与问题的解决 <一>
- hiho一下 第117周 #1393 : 网络流三·二分图多重匹配 【网络流--增加源点-汇点 Ford-Fulkerson算法】
- 最大网络流的Ford-Fulkerson 算法
- Drainage Ditches (poj 1273 && hdu 1532 网络流之Ford-Fulkerson)
- [算法导论·ISAP]网络流学习笔记
- 学习网址记录~~~~~~~~~~~~~~~~~~~·
- hihocoder 数论一·Miller-Rabin质数测试