HDU3549--最大流水题
来源:互联网 发布:php采集网站数据 编辑:程序博客网 时间:2024/05/20 02:29
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
#include <iostream>#include <cstdio>#include <queue>using namespace std;#define maxn 18#define inf 0x7fffffffint cap[maxn][maxn];int pre[maxn];bool val[maxn];int n;inline int min(int a,int b){return a>b?b:a;}bool bfs(int s,int t){memset(val,0,sizeof(val));val[s]=1;queue <int> q;q.push(s);while(!q.empty()){int p=q.front();q.pop();for(int i=1;i<=n;i++){if(cap[p][i]>0&&!val[i]){val[i]=1;pre[i]=p;q.push(i);if(i==t){return true;}}}}return false;}int EK(int s,int t){int flow=0;while(bfs(s,t)){int d=inf;for(int i=t;i!=s;i=pre[i]){d=min(d,cap[pre[i]][i]);}for(int i=t;i!=s;i=pre[i]){cap[i][pre[i]]+=d;cap[pre[i]][i]-=d;}flow+=d;}return flow;}int main(){int t,m;scanf("%d",&t);for(int i=1;i<=t;i++){scanf("%d%d",&n,&m);memset(cap,0,sizeof(cap));for(int j=1;j<=m;j++){int u,v,w;scanf("%d%d%d",&u,&v,&w);cap[u][v]+=w;}printf("Case %d: ",i);printf("%d\n",EK(1,n));}return 0;}
- HDU3549--最大流水题
- hdu3549-网络流水题
- hdu3549 最大流模板题
- HDU3549(最大流入门模板题)
- hdu3549(又是最大流模板题)
- POJ1273 最大流水题
- 最大流水题集锦
- HDU3549 最大流入门
- hdu3549最大流
- 最大流HDU3549
- hdu3549(网络流入门题-最大流的sap算法)
- POJ 3281 最大流水题
- hdu 最大流水题集锦。。。
- BZOJ最大流水题集
- hdu 1532 最大流水题
- hdu3549 (dinic求最大流)
- HDU3549 Flow Problem 【最大流】
- HDU3549 Flow Problem(最大流)
- 编译Android goldfish内核源码
- rand和srand函数用法详解。
- java_web12-WEB应用中的普通Java程序如何读取资源文件
- IT职场人生系列之二十四:程序员如何增加收入
- 11个完全免费的线框图工具
- HDU3549--最大流水题
- (SDK)VC控件的类别以及消息和方法
- 同步和互斥的POSIX支持(读写锁、信号量和记录锁)
- Java程序栈信息文件中的秘密(三)
- 关于stdint.h头文件
- linux时间函数gettimeofday解析
- 各种js 验证
- 为何 Emacs 和 Vim 被称为两大神器
- Android--DPAD键的事件处理