UVA 10330 Power Transmission 网络流 拆点+多源点多汇点
来源:互联网 发布:淘宝入店来源直接访问 编辑:程序博客网 时间:2024/05/16 17:05
题意:一张有向图由n个点构成,每个点都有一个容量限制,然后给出多个源点和多个汇点。
经典的模型,拆点,构造超级源点和超级汇点,然后用最大流算法即可。
注意要小心构造图。
代码:
/** Author: illuz <iilluzen[at]gmail.com>* Blog: http://blog.csdn.net/hcbbt* File: uva10330.cpp* Create Date: 2013-12-06 15:51:52* Descripton: 拆点, max flow */#include <cstdio>#include <cstring>#include <iostream>#include <queue>#include <algorithm>using namespace std;const int MAXN = 210;const int INF = 0X3C3C3C3C;int mr[MAXN];// 从源点到i的最小残量int p[MAXN];// 更新时i的上流节点int c[MAXN][MAXN], f[MAXN][MAXN];// capitar and flowint 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// bfswhile (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;// updatefor (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 n, nn, en, b, d, u, v, cast;while (scanf("%d", &n) != EOF) {memset(c, 0, sizeof(c));// 拆点for (int i = 1; i <= n; i++)scanf("%d", &c[i][i + n]);scanf("%d", &en);while (en--) {scanf("%d%d%d", &u, &v, &cast);c[u + n][v] = cast;// 这里也要处理}// 构建超级源点和超级汇点scanf("%d%d", &b, &d);while (b--) {scanf("%d", &u);c[0][u] = INF;}while (d--) {scanf("%d", &u);c[u + n][2 * n + 1] = INF;}printf("%d\n", maxFlow(0, 2 * n + 1, 2 * n + 2));}return 0;}
- UVA 10330 Power Transmission 网络流 拆点+多源点多汇点
- UVa 10330 - Power Transmission (最大流+拆点)
- UVa 10330 Power Transmission(最大流 + 拆点)
- UVA - 10330 Power Transmission (最大流+拆点)
- uva 10330 Power Transmission (最大流 + 拆点)
- uva 10330 - Power Transmission(网络流)
- uva 10330 Power Transmission (网络流)
- UVA 10330 Power Transmission(网络最大流)
- LightOJ 1155 - Power Transmission【拆点网络流】
- lightoj 1155 - Power Transmission 【多源多汇 拆点网络流】
- UVa 10330 Power Transmission (最大流+多源多汇点+结点容量(拆点))
- uva 10330 - Power Transmission
- UVa:10330 Power Transmission
- uva 10330Power Transmission
- UVa 10330 Power Transmission / 最大流EK
- UVA - 10330 Power Transmission 最大流问题
- Power Transmission - UVa 10330 最大流
- UVa10330 Power Transmission (最大流,拆点)
- 现在还买车?土豪有去买坦克了
- AJAX 笔试面试题汇总
- 安装rz 以及 sz命令、、安装rpm命令
- 【转载】Ubuntu 12.04 Desktop下vncserver配置:Unity以及Xfce4桌面环境
- Oracle限制某个数据库帐号只能在特定机器上连入数据库
- UVA 10330 Power Transmission 网络流 拆点+多源点多汇点
- Entity Framework 手动映射 Mapping
- 蜂窝网络的区域
- 这才是真正的“匈牙利命名法”
- Ajax面试题
- int(Integer) 与 short(Short)
- 无废话SharePoint入门教程一[SharePoint概述]
- UISnapBehavior-动画效果:迅猛移动弹跳摆动
- The Seven Percent Solution