HDU3549 Flow Problem
来源:互联网 发布:ug四轴联动编程实例 编辑:程序博客网 时间:2024/05/11 14:56
#include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>#include<iostream>#include<queue>#define inf 0x3fffffffconst int maxn=20; using namespace std;typedef long long ll;int pre[maxn]; //保存前驱节点bool vis[maxn];int mp[maxn][maxn]; //邻接矩阵保存残留网络int s,e; //s为源点,e为汇点int n,m; //输入n个点,m条边 bool bfs(){queue<int> q;memset(pre,0,sizeof(pre));memset(vis,0,sizeof(vis));vis[s]=1;q.push(s);while(!q.empty()){int first=q.front();q.pop();if(first==e) return true; //找到一条广增路for(int i=1;i<=n;i++){if(!vis[i]&&mp[first][i]){q.push(i);pre[i]=first;vis[i]=1;}} }return false;}int max_flow(){int ans=0;while(1){if(!bfs()) return ans; //找不到广增路int Min=inf;for(int i=e;i!=s;i=pre[i]) Min=min(Min,mp[pre[i]][i]); //回溯找最小流量for(int i=e;i!=s;i=pre[i]){mp[pre[i]][i]-=Min;mp[i][pre[i]]+=Min;}ans+=Min;}}int main(){int t,u,v,c;scanf("%d",&t);for(int cas=1;cas<=t;cas++){scanf("%d%d",&n,&m);s=1,e=n;memset(mp,0,sizeof(mp));while(m--){scanf("%d%d%d",&u,&v,&c);mp[u][v]+=c;}printf("Case %d: %d\n",cas,max_flow());}return 0;}
阅读全文
0 0
- hdu3549 Flow Problem (Dinic)
- hdu3549 flow problem
- hdu3549 Flow Problem
- HDU3549-Flow Problem
- HDU3549 Flow Problem
- 【网络流】hdu3549 Flow Problem
- HDU3549 Flow Problem 【最大流】
- HDU3549 Flow Problem(最大流)
- hdu3549 Flow Problem【最大流】
- hdu3549 Flow Problem 最大流模板 isap
- hdu3549--Flow Problem(初识最大流)
- HDU3549 Flow Problem【最大流】【Edmond-Karp】
- hdu3549 Flow Problem(最大流)
- 网络流入门题hdu3549(Flow Problem)
- hdu3549 Flow Problem--EK算法 & 最大流
- hdu3549 Flow Problem(EKarp||Dinic)
- HDU3549 Flow Problem(ford-fulkerson算法)
- hdu3549-Flow Problem(最大流&EK)
- PyCharm引入自定义类报错
- mysql唯一索引的一个小常识--Duplicate entry 'XXX' for key 'XXX'
- vue-router菜鸟进阶!(重定向和别名)
- Cannot determine embedded database driver class for database type NONE
- BZOJ3594 [Scoi2014]方伯伯的玉米田
- HDU3549 Flow Problem
- C语言访问webservice小例子
- String类的常用方法总结
- Git教程——入门基础
- [2017纪中11-8]好文章 字符串hash+STL
- Airkiss技术java方法实现
- 从数据库获取 10 条随机数据
- PHP连接数据库方法
- NOIP加油!