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,因为一题可以多解而且 ...
随机推荐
- Intersection(poj)
Intersection Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13140 Accepted: 3424 Des ...
- bootstrap基础样式使用
<small> 为了给段落添加强调文本,则可以添加 class="lead" <small>本行内容是在标签内</small><br> ...
- 「OC」构造方法和分类
一.构造方法 (一)构造方法的调用 创建一个可用的对象:Person *p=[Person new]; new方法实际上是分为两步来创建一个对象: 1)使用+alloc方法来分配存储空间(返回分配的对 ...
- STL之deque(双向队列)
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque在vector函数的基础上增 ...
- Nginx 之六: Nginx服务器的反向代理功能
一:Nginx作为正向代理服务器: 1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代 ...
- Introduction to Json
什么是Json 是Javascript·对象的一种表示,属于轻量级数据,它比XMl小,快,易解析 作用: 用于存储和交换(转换)信息的语言,还可以将各种数据类型放在json中并进行数据传输 整理的章节 ...
- JS sort()实用技巧
[1, 3, 9, 2].sort(); // Returns: [1, 2, 3, 9] // 返回 [1, 2, 3, 9] --这没错,但它还有更强大的用法,比如这样: var data=[ ...
- Qt setStyleSheet 添加背景色/背景图片(取消背景色,读取本地文件作为背景色)
容易搞定,mainWindow 是一个QWidget.// 设置背景色为蓝色mainWindow.setStyleSheet("background-color:blue;"); ...
- Google浏览器的缓存文件过大(mega网站导致的)
到选项里清空所有内容也没有用. 后来手动找了一下,原来在这里,存了在这里存了整整10G的缓存: C:\Users\my\AppData\Local\Google\Chrome\User Data\Pr ...
- python 爬一下
1.安装Requestswindow:pip install requestslinux:sudo pip install requests国内安装缓慢,建议到:http://www.lfd.uci. ...