网络流最大流模板(poj1273)
来源:互联网 发布:js获取url参数 编辑:程序博客网 时间:2024/05/29 04:28
2012-11-3
#include <iostream>#include <fstream>#include <queue>#include <vector>#include <string>#include <cstring>#include <cmath>#include <cstdlib>#include <cstdio>#include <map>using namespace std; int const MAX=256; int const inf=0x3f3f3f3f; int N, M; int m[MAX][MAX], flow[MAX], v[MAX], front[MAX]; //m[][]残留网络, flow[]各点的流, v[]访问记录, front[]前节点int bfs(int s, int t){int i, u; memset(v, 0, sizeof v); memset(flow, 0, sizeof flow); //没流入则为空queue<int> Q; while(!Q.empty()) Q.pop(); flow[s] = inf;//初始流inf v[s] = 1; Q.push(s); while(!Q.empty()){u=Q.front(); Q.pop(); for(i=1; i<=M; i++){if(!v[i] && m[u][i]>0)//没访问,有通路{//流量跟上限比较, 取小者flow[i]=m[u][i]<flow[u]?m[u][i]:flow[u]; front[i]=u; v[i]=1; Q.push(i); }}}if(flow[t]==0)return 0; return flow[t]; }int EK(int s, int t){int f, u, max_f=0; while((f=bfs(s, t))!=0){//从尾部向前更新残留网络u = t; while(u!=s){m[front[u]][u] -= f; m[u][front[u]] += f; u=front[u]; }max_f += f; }return max_f; }int main(){#ifndef ONLINE_JUDGEifstream cin("in.txt"); #endifint i; while(cin>>N>>M){int x, y, f; memset(m, 0, sizeof m); for(i=0; i<N; i++){//m[][] 为残留网络cin>>x>>y>>f; m[x][y] += f; }cout<<EK(1,M)<<endl; }cout<<inf<<endl; return 0; }
- 网络流最大流模板(poj1273)
- POJ1273 最大流模板题 初学网络流~
- 【网络流之最大流】POJ1273-Drainage Ditche【模板题】
- POJ1273 Drainage Ditches(网络流最大流模板)
- 网络最大流poj1273,hdoj1532
- 网络流模板(模板题:POJ1273)
- POJ1273 最大流模板题_Edmonds_Karp
- POJ1273 Drainage Ditches最大流模板
- poj1273 最大流模板 Edmond_karp算法
- 8.9 poj1273最大流 (Dinic模板练习)
- poj1273 Drainage Ditches (最大流模板)
- Poj1273最大流 裸题模板
- POJ1273 网络流-->最大流-->模板级别-->最大流常用算法总结
- poj1273(网络流最大流dinic)
- 网络流之最大流(关于poj1273)
- 网络最大流问题 poj1273 Drainage Ditches
- 网络流Dinic算法模板 POJ1273
- POJ1273(最大流)
- Qt容器类介绍和使用
- Javascript函数返回值的一个问题(显式返回和非显式返回值的问题)
- assert只如初见
- Project Euler problem 19
- Eclipse安装git插件EGit
- 网络流最大流模板(poj1273)
- Create a projector in DirectX
- 蛋疼游戏
- linux umount 提示"device is busy"
- 八. 对象和方法
- main2-3-4.c 检验bo2-6.c的主程序
- 第三次周总结---在路上
- OMRON NB7触摸屏读写功能外移
- 英文版Win7下matlab乱码解决方案