hdu 3549 Flow Problem (ek算法模板)
来源:互联网 发布:你最努力的时候知乎 编辑:程序博客网 时间:2024/04/29 16:43
Flow Problem
Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 7363 Accepted Submission(s): 3412
Problem Description
Network flow is a well-known difficult problem for ACMers. Given a graph, your task is to find out the maximum flow for the weighted directed graph.
Input
The first line of input contains an integer T, denoting the number of test cases.
For each test case, the first line contains two integers N and M, denoting the number of vertexes and edges in the graph. (2 <= N <= 15, 0 <= M <= 1000)
Next M lines, each line contains three integers X, Y and C, there is an edge from X to Y and the capacity of it is C. (1 <= X, Y <= N, 1 <= C <= 1000)
For each test case, the first line contains two integers N and M, denoting the number of vertexes and edges in the graph. (2 <= N <= 15, 0 <= M <= 1000)
Next M lines, each line contains three integers X, Y and C, there is an edge from X to Y and the capacity of it is C. (1 <= X, Y <= N, 1 <= C <= 1000)
Output
For each test cases, you should output the maximum flow from source 1 to sink N.
Sample Input
23 21 2 12 3 13 31 2 12 3 11 3 1
Sample Output
Case 1: 1Case 2: 2
Author
HyperHexagon
#include"stdio.h"#include"string.h"#include"queue"using namespace std;#define N 20const int inf=10000000;int g[N][N];int pre[N],mark[N];int ek(int n){ int i,u,d,ans=0; while(1) { queue<int>q; q.push(1); memset(mark,0,sizeof(mark)); memset(pre,0,sizeof(pre)); mark[1]=1; while(!q.empty()) { u=q.front(); q.pop(); for(i=1;i<=n;i++) { if(!mark[i]&&g[u][i]) { mark[i]=1; pre[i]=u; q.push(i); } } } if(pre[n]==0) break; d=inf; for(i=n;i!=1;i=pre[i]) { d=min(d,g[pre[i]][i]); } for(i=n;i!=1;i=pre[i]) { g[pre[i]][i]-=d; g[i][pre[i]]+=d; } ans+=d; } return ans;}int main(){ int n,m,T,u,v,w,cnt=1; scanf("%d",&T); while(T--) { memset(g,0,sizeof(g)); scanf("%d%d",&n,&m); while(m--) { scanf("%d%d%d",&u,&v,&w); g[u][v]+=w; } printf("Case %d: %d\n",cnt++,ek(n)); } return 0;}
- hdu 3549 Flow Problem (ek算法模板)
- hdu 3549 Flow Problem(最大流EK算法模板)
- HDU 3549 Flow Problem【最大流模板题,EK算法】
- HDU 3549 Flow Problem(最大流+EK邻接表||邻接矩阵||dinic算法模板比较)
- hdu 3549 EK算法 Flow Problem
- HDU 3549 Flow Problem 解题报告(EK)算法
- hdu 3549 Flow Problem(EK)
- hdu 3549 Flow Problem 最大流入门 EK算法
- HDU 3549 Flow Problem ( 最大流 -EK 算法)
- hdu 3549 Flow Problem ek算法,网络流
- hdu 3549 Flow Problem EK算法 网络流
- 【最大流(EK)】hdu 3549 Flow Problem
- HDU- 3549-Flow Problem (网络流之 EK)
- HDU 3549 Flow Problem(最大流裸题,EK解法)
- HDU 3549 Flow Problem 网络流 EK
- hdu 3549 Flow Problem (EK 最大流)
- hdu 3545 Flow Problem 最大流模板题 EK+Dinic算法两种代码AC
- HDU 3549 Flow Problem 最大流 最小增广路 EK算法 传说中的入门算法
- 将VFP的DBF文件导入SQL-Server2005中
- 【分享】January 2013 - Mobile Shopping (omnibus)(2013一月份移动购物 (omnibus))
- php 断点调试工具配置之三
- Oracle的Move操作
- Android PackageInstaller 静默安装的实现(附源码)
- hdu 3549 Flow Problem (ek算法模板)
- c++接口类的实现
- TCP与UDP的区别
- PMP Related Topic 6
- Openssl有关大数运算函数介绍
- js每个5分钟执行一次ajax请求
- JQuery - 点击浏览器后退键时发出警告
- 网站开发积累(对MVC设计模式的理解)
- spring 配置、架构