uva 10330 - Power Transmission(网络流)
uva 10330 - Power Transmission
题目大意:最大流问题。
解题思路:増广路算法。
#include <stdio.h>
#include <string.h>
#include <queue> using namespace std; #define min(a,b) (a)<(b)?(a):(b) const int N = 105;
const int INF = 0x3f3f3f3f; int n, s[N], g[N][N], f[N][N]; void init() {
memset(s, 0, sizeof(s));
memset(g, INF, sizeof(g));
memset(f, INF, sizeof(f)); for (int i = 1; i <= n; i++)
scanf("%d", &s[i]); int a, b, c, t;
scanf("%d", &t);
for (int i = 0; i < t; i++) {
scanf("%d%d%d", &a, &b, &c);
g[a][b] = min(g[a][b], c);
f[a][b] = 0;
} scanf("%d%d", &a, &b);
for (int i = 0; i < a; i++) {
scanf("%d", &c);
g[0][c]--;
f[0][c] = 0;
} for (int i = 0; i < b; i++) {
scanf("%d", &c);
g[c][n + 1]--;
f[c][n + 1] = 0;
}
} int solve() {
n++;
s[n] = INF;
int a[N], vis[N];
int ans = 0;
queue<int> q; while (1) { memset(vis, 0, sizeof(vis));
memset(a, 0, sizeof(a)); int c = 0, t; vis[c] = 0;
a[c] = INF;
q.push(c); while (!q.empty()) { c = q.front(), q.pop(); for (int i = 1; i <= n; i++) { if (g[c][i] == INF) continue;
t = min(g[c][i] - f[c][i], min(a[c], s[i])); if (t > a[i]) {
vis[i] = c;
a[i] = t;
q.push(i);
}
}
} if (a[n] == 0) break;
ans += a[n]; for (int i = n; i; i = vis[i]) { s[i] -= a[n];
f[vis[i]][i] += a[n];
}
}
return ans;
} int main () { while (scanf("%d", &n) == 1) { init();
printf("%d\n", solve());
}
return 0;
}
uva 10330 - Power Transmission(网络流)的更多相关文章
- UVa 10330 - Power Transmission(最大流--拆点)
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- UVA 10330 Power Transmission
题意:懒得打了.LUCKY CAT 里有 http://163.32.78.26/homework/q10330.htm 第一个网络流题目.每个节点都有一个容量值.需要拆点.拆成i - > i ...
- UVa 10330 Power Transmission / 最大流
最大流 这题有很多起点和终点 在取2个点(0和n+1) 作为唯一的起点和终点 此外每个点也有容量限制 建图时每条边上的容量为这条边和2个端的容量的最小值 然后EK就行 #include <cst ...
- light oj 1155 - Power Transmission【拆点网络流】
1155 - Power Transmission PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- UVA 10480 Sabotage (网络流,最大流,最小割)
UVA 10480 Sabotage (网络流,最大流,最小割) Description The regime of a small but wealthy dictatorship has been ...
- UVA 11149 - Power of Matrix(矩阵乘法)
UVA 11149 - Power of Matrix 题目链接 题意:给定一个n*n的矩阵A和k,求∑kiAi 思路:利用倍增去搞.∑kiAi=(1+Ak/2)∑k/2iAi,不断二分就可以 代码: ...
- C2. Power Transmission (Hard Edition)(线段相交)
This problem is same as the previous one, but has larger constraints. It was a Sunday morning when t ...
- C2. Power Transmission (Hard Edition) 解析(思維、幾何)
Codeforce 1163 C2. Power Transmission (Hard Edition) 解析(思維.幾何) 今天我們來看看CF1163C2 題目連結 題目 給一堆點,每兩個點會造成一 ...
- UVa 11082 Matrix Decompressing - 网络流
开始眨眼一看怎么也不像是网络流的一道题,再怎么看也觉得像是搜索.不过虽然这道题数据范围很小,但也不至于搜索也是可以随随便便就可以过的.(不过这道题应该是special judge,因为一题可以多解而且 ...
随机推荐
- C++ Primer的课后规划问题的第八章
1.写通常需要一个参数(字符串的地址).字符串和打印功能. 只要.假设提供了第二个参数(int种类),而这个参数不0,的次数的函数打印串数量为该功能将被称为(意,字符串的打印次数不等于第二个參数的值. ...
- windows下使用python googleprotobuf
首先下载:protobuf-2.5.0.tar.gz 和protoc-2.5.0-win32.zip.两者的版本要对应: 将下载的google protobuf解压,会看到一个python目录,Win ...
- iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现
项目地址 : https://github.com/zhonggaorong/weixinLoginDemo 最新版本的微信登录实现步骤实现: 1.在进行微信OAuth2.0授权登录接入之前,在 ...
- MySQL支持emoji
方案1: 应用层支持 MySQL默认的数据库编码是utf8,对于emoji文字是不能直接存储的,要想存储emoji,有许多库支持对emoji的转换,例如将
- CSS: inline-block的应用和float块高度塌陷
普通流高度塌陷: 当块float浮动时,不会对块布局产生影响,块仍然会按照左右或者上下的顺序排列.但是会影响文档的排列,当文档的高度超过块的高度时,块的高度会产生塌陷现象. 高度塌陷解决方法: ...
- Java thread中对异常的处理策略
转载:http://shmilyaw-hotmail-com.iteye.com/blog/1881302 前言 想讨论这个话题有一段时间了.记得几年前的时候去面试,有人就问过我一个类似的问题.就是j ...
- 解决gnuplot中'Terminal type set to 'unknown'不能显示绘图的问题
安装gnuplot: sudo apt-get install gnuplot 安装成功后,在终端输入gnuplot,进入gnuplot. 直接进行一个小测试: plot sin(x) 发现不能显示绘 ...
- judge loop in undirected graph
一 深度优先遍历,参考前面DFS(white and gray and black) 二 根据定点以及边数目进行判断 如果m(edge)大于n(vertex),那么肯定存在环 算法如下: 1 删除所有 ...
- php基本框架
- 海量Web日志分析 用Hadoop提取KPI统计指标
http://blog.fens.me/hadoop-mapreduce-log-kpi/ http://dongxicheng.org/search-engine/scribe-installati ...