hdu 1532 最大流
2015-07-27 15:44
465 查看
#include <cstdio> #include <iostream> #include <algorithm> #include <queue> #include <cmath> #include <cstring> #include <stack> #include <set> #include <map> #include <vector> using namespace std; #define INF 0x4fffffff #define LL long long #define MAX(a,b) ((a)>(b))?(a):(b) #define MIN(a,b) ((a)<(b))?(a):(b) int n,m; LL c[205][205]; LL f[205][205]; LL a[205]; LL pre[205]; void max_flow(){ memset(f,0,sizeof(f)); LL ans = 0; while(1){ memset(a,0,sizeof(a)); queue<int> que; que.push(1); a[1] = INF; while(!que.empty()){ int u = que.front(); que.pop(); for(int i = 1;i <= m;i++){ if(!a[i] && c[u][i] > f[u][i]){ pre[i] = u; a[i] = min(a[u],c[u][i] - f[u][i]); que.push(i); } } } if(a[m] == 0) break; for(int u = m; u!=1;u = pre[u]){ f[pre[u]][u] += a[m]; f[u][pre[u]] -= a[m]; } ans += a[m]; } cout << ans << endl; } int main(){ while(scanf("%d%d",&n,&m)!=EOF){ memset(c,0,sizeof(c)); for(int i = 0;i < n;i++){ int x,y,w; scanf("%d%d%d",&x,&y,&w); c[x][y] += w; } max_flow(); } return 0; }
相关文章推荐
- Equivalent Strings(二分+递归深搜)
- 【HDU】5291 Candy Distribution 【DP+打标记】
- IOS开发—NSDateFormatter
- sqlplus的使用
- HDU 4336 Card Collector 概率DP 好题
- 《产品管理精华》目录
- patch补丁文件制作 使用和常见问题
- 【Struts2框架】第四节Struts标签-通用标签简述与常用标签大例子
- hdoj 1042 N!
- POJ 3087 Shuffle'm Up(模拟)
- SWF文件加密、混淆
- [知识点]计算几何I——基础知识与多边形面积
- 222题——Count Complete Tree Nodes(完全二叉树)
- 思维+multiset ZOJ Monthly, July 2015 - H Twelves Monkeys
- xml与json 介绍
- 一个C语言编写的坦克大战游戏
- 解决Windows无法访问默认共享问题
- 阿里巴巴sku算法实现
- Extjs方法的构造
- Extjs方法的构造