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,因为一题可以多解而且 ...
随机推荐
- JS实现日历控件选择后自动填充
最近在做人事档案的项目,在做项目的初期对B/S这块不是很熟悉,感觉信心不是很强,随着和师哥同组人员的交流后发现,调试程序越来越好了,现在信心是倍增,只要自己自己踏实的去研究.理解代码慢慢的效果就出来了 ...
- C#中类的运用(Eighth day)
又到了总结知识的时刻了,今天在云和学院学习了类的运用,下面是今天所学知识的总结: 理论: 类的定义语法: [访问修饰符] class 类名 { 成员; // 1.通过字段来描述类别信息的变量 ... ...
- JavaScript基础知识----基本语法
JavaScript 语句 JavaScript 语句向浏览器发出的命令.语句的作用是告诉浏览器该做什么. 分号 ; 分号用于分隔 JavaScript 语句. 通常我们在每条可执行的语句结尾添加分号 ...
- 使用PHP搭建自己的MVC框架
一.什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Controller ...
- Nginx 之六: Nginx服务器的反向代理功能
一:Nginx作为正向代理服务器: 1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代 ...
- [LeetCode]题解(python):029-Divide Two Integers
题目来源: https://leetcode.com/problems/divide-two-integers/ 题意分析: 不用乘法,除法和mod运算来实现一个除法.如果数值超过了int类型那么返回 ...
- (IOS)N duplicate symbols for architecture i386
Xcode编译时的error,出现此情况的汇总引用如下: 1.可能存在两个main入口: 2.导入的.h文件可能误写为.m: 3.两文件间可能存在重复定义的全局变量名: 4.使用#include导入文 ...
- There is an error in invoking javac. A full JDK (not just JRE) is required
最近调整了磁盘分区,硬盘里什么都没有了,可惜了我很多项目还有数据库资源然后把以前ssh项目重新导入进来的时候出现了一个错误org.apache.jasper.JasperException: PWC6 ...
- mybatis通用DAO
扫扫关注"茶爸爸"微信公众号 坚持最初的执着,从不曾有半点懈怠,为优秀而努力,为证明自己而活. 回复:茶爸爸了解他这个人!! 花了几天的时间研究了一下mybatis的源代码,觉得这 ...
- Eclipse 取消import自动补全具体的类名
有时候,在代码里写了一个JFrame,然后Eclipse就自动添加了import javax.swing.JFrame; 但有时候希望只要import javax.swing.*;就可以了,不希望具体 ...