HDU 3549 网络流水题

原创 2013年12月04日 15:28:05

题意:赤果果的网络流

代码:

/*
*  Author:      illuz <iilluzen[at]gmail.com>
*  Blog:        http://blog.csdn.net/hcbbt
*  File:        hdu3549.cpp
*  Create Date: 2013-12-04 09:28:46
*  Descripton:  max flow, basic, bfs
*/

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue>
using namespace std;

const int MAXN = 16;
const int INF = 0x3c3c3c3c;

int mr[MAXN];	// 从源点到i的最小残量
int p[MAXN];	// 更新时i的上流节点
int c[MAXN][MAXN], f[MAXN][MAXN];	// capitar and flow

int maxFlow(int op, int ed, int n)	// start, end, num of points
{
	queue<int> q;
	memset(f, 0, sizeof(f));
	memset(p, 0, sizeof(p));
	int F = 0;	// total flow

	// bfs
	while (1) {
		memset(mr, 0, sizeof(mr));
		q.push(op);
		mr[op] = INF;	// 源点残量
		while (!q.empty()) {
			int u = q.front();
			q.pop();
			for (int v = 0; v < n; v++) 
				if (!mr[v] && c[u][v] > f[u][v]) {
					p[v] = u;
					q.push(v);
					mr[v] = min(mr[u], c[u][v] - f[u][v]);
				}
		}

		if (mr[ed] == 0) return F;

		// update
		for (int u = ed; u != op; u = p[u]) {
			f[u][p[u]] -= mr[ed];
			f[p[u]][u] += mr[ed];
		}
		F += mr[ed];
	}
}

int main() {
	int t, nn, en, s, e, cast;
	scanf("%d", &t);
	for (int cas = 0; cas < t; cas++) {
		scanf("%d%d", &nn, &en);
		memset(c, 0, sizeof(c));

		for (int i = 0; i < en; i++) {
			scanf("%d%d%d", &s, &e, &cast);
			c[s - 1][e - 1] += cast;
		}

		printf("Case %d: %d\n", cas + 1, maxFlow(0, nn - 1, nn));
	}
	return 0;
}


HDU3549--最大流水题

Description Network flow is a well-known difficult problem for ACMers. Given a graph, your task i...
  • a305657
  • a305657
  • 2013年02月03日 22:52
  • 203

hdu3549(网络流入门题-最大流的sap算法)

链接:   Flow Problem (hdu3549) Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K ...

hdu3549(网络流入门题-最大流的Ford-Fulkerson算法)

题目:Flow Problem   网络流深入学习请戳这里。 Ford-Fulkerson方法依赖于三种重要思想,这三个思想就是:残留网络,增广路径和割。 Ford-Fulkerson方法是一...

HDU3549 网络流入门题(Dinic)

#include #include #include #include #include #include #include #define inf 0x3f3f3f3f #define ...

HDU3549 Flow Problem (网络流入门题)

入门题: 我使用的是ISAP算法,效率还是可以的,复杂度是O(v*v*E) 学习资料#include #include using namespace std; #define cl(a,b) m...

HDU 1532 Drainage Ditches(网络流水题【Edmond-Karp算法】)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 Drainage DitchesTime Limit: 2000/1000 MS (Java/...

HDU - 1532 - Drainage Ditches && 3549 - Flow Problem (网络流初步)

Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others...

HDU 3549(网络流入门之最大流)

网络流最大流入门题

【网络流之最大流】HDU3549Flow Problem【EK模板】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Problem Description Network flow is a we...
  • wlxsq
  • wlxsq
  • 2016年05月12日 21:14
  • 193

HDU 3549 适合网络流入门(内含sap模板和Dinic模板)Flow Problem

题目链接  Flow Problem Time Limit: 5000/5000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Othe...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 3549 网络流水题
举报原因:
原因补充:

(最多只允许输入30个字)