hihocoder 1369 网络流之最大流
来源:互联网 发布:淘宝全球购有什么好处 编辑:程序博客网 时间:2024/05/15 05:48
题目链接:http://hihocoder.com/problemset/problem/1369
思路:每次找一条不停地能到达目的点的路(增广路),然后更新图的流量。 ,使用:Ford-Fulkerson算法
#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <stack>#include <queue>#include <algorithm>#include <vector>#include <map>#include <set>#include <stdlib.h>#include <iomanip>#include <fstream>using namespace std;#pragma comment(linker, "/STACK:102400000,102400000")#define maxn 505#define MOD 1000000007#define mod 2147493647#define mem(a , b) memset(a , b , sizeof(a))#define LL long long#define ULL unsigned long long#define FOR(i , n) for(int i = 1 ; i<= n ; i ++)typedef pair<int , int> pii;int n , m;vector<int>V[maxn];int a[maxn][maxn] , path[maxn];bool vis[maxn] ;int flow[maxn];bool GetAugmentPath(){ queue<int>q; while(!q.empty()) q.pop(); q.push(1);vis[1] = 1; flow[1] = MOD; while(!q.empty()) { int cur = q.front(); q.pop(); if(cur == n) { return 1; } for(int i = 0 ; i < V[cur].size() ; i ++) { if(!vis[V[cur][i]] && a[cur][V[cur][i]] > 0) { vis[V[cur][i]] = 1; path[V[cur][i]] = cur; flow[V[cur][i]] = min(a[cur][V[cur][i]] , flow[cur]); q.push(V[cur][i]); } } } return 0;}void Update(int num){ int u = n , v = path[u]; while(v != -1) { a[v][u] -= num; // a[u][v] += num; u = v; v = path[u]; } return ;}int main(){ while(scanf("%d %d" , &n , &m) != EOF) { for(int i = 0 ; i <= n ; i ++) V[i].clear(); mem(a , 0);mem(vis , 0);mem(path , -1);mem(flow , 0); int u , v , c; for(int i = 0 ; i < m ; i ++) { scanf("%d %d %d" , &u , &v , &c); a[u][v] += c ; // a[v][u] = max(0 , a[v][u]); V[u].push_back(v); // V[v].push_back(u); } int ans = 0; while(GetAugmentPath()) { ans += flow[n]; Update(flow[n]); mem(vis , 0);mem(path , -1);mem(flow , 0); } printf("%d\n" , ans); } return 0;}
0 0
- hihocoder 1369 网络流之最大流
- hihocoder 网络流二·最大流最小割定理
- 网络流二·最大流最小割定理 HihoCoder
- 网络流之最大流
- 网络流之最大流
- 网络流之最大流
- 网络流之最大流
- hihocoder 1378 : 网络流二·最大流最小割定理
- hihocoder 1378 网络流二·最大流最小割定理
- hihoCoder 1378 网络流二·最大流最小割定理 (网络流学习#2 记录)
- HihoCoder #1369 : 网络流一·Ford-Fulkerson算法
- hihocoder #1369 : 网络流一·Ford-Fulkerson算法
- hihocoder#1369 : 网络流算法的一些小结
- hihocoder 1369: 网络流一·Ford-Fulkerson算法
- hihocoder#1369 : 网络流一·Ford-Fulkerson算法
- hihoCoder 1122 二分图最大匹配 最大流
- hihocoder 1252 Kejin Game dinic网络流
- 网络流之最大流sap算法
- XTOJ 1245 Hamiltonian Path【伪最短路,水题】
- nyoj113字符串替换(利用string类的简单方法)
- Codeforces Round #377 D. Exams (二分)
- windows下将php与mysql结合
- Eclipse导入Github上的Robotium源码进行代码分析的步骤
- hihocoder 1369 网络流之最大流
- poj1003 Hangover
- php操作memcache基础方法
- Android:检测网络状态&监听网络变化
- 优化程序性能
- javaWeb知识的回顾
- Hibernate如何通过注解设置主键为一个UUID随机数
- Android基础——JSON数据的全方位解析
- Java类加载及初始化顺序