POJPower Network (最大流)
题目链接。
分析:
这题描述的可不是一般的复杂.
其时就是很多源点、很多汇点,使尽量多流量的到达汇点。
因为有很多源点,就再设一个源点(0号),使得0号到其它源点的容量为其它源点的初始量,同样设一汇点(n+1),使得其它汇点到该汇点的容量为其它汇点的初始量,如此就把很多的源点和汇点看成普通的点,单源单汇最大流。
最大流用的是白书上的增广路算法。
AC代码如下:
#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include <vector> using namespace std; const int maxn = ;
const int INF = (<<); int cap[maxn][maxn], flow[maxn][maxn]; int EdmondsKarp(int s, int t, int n) {
int p[maxn], a[maxn];
queue<int> q; memset(flow, , sizeof(flow));
int f = ; while(true) {
memset(a, , sizeof(a)); a[s] = INF; q.push(s); while(!q.empty()) { //BFS 找增广路
int u = q.front(); q.pop(); for(int v=; v<=n; v++) if(!a[v] && cap[u][v]>flow[u][v]){
//找到新节点v
p[v] = u; q.push(v);
a[v] = min(a[u], cap[u][v]-flow[u][v]);
}
} if(a[t] == ) break; //找不到,则当前流已经是最大流 for(int u=t; u != s; u = p[u]) { //从汇点往回走
flow[p[u]][u] += a[t]; //更新正向流量
flow[u][p[u]] -= a[t]; //更新反向流量
} f += a[t]; //更新从 s 流出的流量
} return f;
} int main(){
int n, np, nc, m;
int u, v, c;
char s[]; while(scanf("%d%d%d%d", &n, &np, &nc, &m) == ) {
memset(cap, , sizeof(cap)); for(int i=; i<m; i++) {
scanf("%s", s);
sscanf(s, "(%d,%d)%d", &u, &v, &c);
u++; v++;
cap[u][v] += c;
} for(int i=; i<np; i++) { //处理源点
scanf("%s", s);
sscanf(s, "(%d)%d", &v, &c);
v++;
cap[][v] += c;
} for(int i=; i<nc; i++) { //处理汇点
scanf("%s", s);
sscanf(s, "(%d)%d", &u, &c);
u++;
cap[u][n+] += c;
} printf("%d\n", EdmondsKarp(, n+, n+));
} return ;
}
POJPower Network (最大流)的更多相关文章
- poj1087 A Plug for UNIX & poj1459 Power Network (最大流)
读题比做题难系列…… poj1087 输入n,代表插座个数,接下来分别输入n个插座,字母表示.把插座看做最大流源点,连接到一个点做最大源点,流量为1. 输入m,代表电器个数,接下来分别输入m个电器,字 ...
- poj1459 Power Network --- 最大流 EK/dinic
求从电站->调度站->消费者的最大流,给出一些边上的容量.和电站和消费者能够输入和输出的最大量. 加入一个超级源点和汇点,建边跑模板就能够了. 两个模板逗能够. #include < ...
- POJ - 1966 Cable TV Network (最大流求点连通度)
题意:求一个无向图的点连通度.点联通度是指,一张图最少删掉几个点使该图不连通:若本身是非连通图,则点连通度为0. 分析:无向图的点连通度可以转化为最大流解决.方法是:1.任意选择一个点作为源点:2.枚 ...
- POJ1459 Power Network —— 最大流
题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS Memory Limit: 32768K Tot ...
- Power Network(最大流(EK算法))
http://poj.org/problem?id=1459 题意:有一个电路网络,每个节点可以产生.传递.消耗若干电量,有点线连接结点,每个电线有最大传输量,求这个网络的最大消费量. 思路:从源点到 ...
- POJ-1459-Pwoer Network(最大流Dinic, 神仙输入)
链接: https://vjudge.net/problem/POJ-1459 题意: A power network consists of nodes (power stations, consu ...
- POJ 1459 Power Network 最大流(Edmonds_Karp算法)
题目链接: http://poj.org/problem?id=1459 因为发电站有多个,所以需要一个超级源点,消费者有多个,需要一个超级汇点,这样超级源点到发电站的权值就是发电站的容量,也就是题目 ...
- UVa 1660 Cable TV Network (最大流,最小割)
题意:求一个无向图的点连通度. 析:把每个点拆成两个,然后中间连接一个容量为1的边,然后固定一个源点,枚举每个汇点,最小割. 代码如下: #pragma comment(linker, "/ ...
- Java基础 Java-IO流 深入浅出
建议阅读 重要性由高到低 Java基础-3 吃透Java IO:字节流.字符流.缓冲流 廖雪峰Java IO Java-IO流 JAVA设计模式初探之装饰者模式 为什么我觉得 Java 的 IO 很复 ...
随机推荐
- LinearLayout增加divider分割线
在android3.0及后面的版本在LinearLayout里增加了个分割线 1 2 android:divider="@drawable/shape"<!--分割线图片-- ...
- Android图片框架---Glide
Glide *** 使用* 一.添加依赖* compile 'com.github.bumptech.glide:glide:3.7.0'* compile 'com.android.support: ...
- [Javascript] Object.assign()
Best Pratices for Object.assign: http://www.cnblogs.com/Answer1215/p/5096746.html Object.assign() ca ...
- “too many open files" ----增大打开的文件数
http://www.cnblogs.com/ibook360/archive/2012/05/11/2495405.html [root@localhost ~]# ab -n -c http:/ ...
- 在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移
在ASP.NET MVC5 及 Visual Studio 2013 中为Identity账户系统配置数据库链接及Code-First数据库迁移 最近发布的ASP.NET MVC 5 及Visual ...
- SQL 插入查询的最大ID 号 进行批量
INSERT INTO tbl_image_language ( code, docomo_cd, au_cd, softbank_cd ) SELECT DISTINCT((SELECT max(c ...
- 抓取锁的sql语句-第三次修改
CREATE OR REPLACE PROCEDURE SOLVE_LOCK AS V_SQL VARCHAR2(3000); --定义 v_sql 接受抓取锁的sql语句CUR_LOCK SYS_R ...
- 用DOM实现文章采集-HtmlAgilityPack实现html解析
Html Agility Pack 是CodePlex 上的一个开源项目.它提供了标准的DOM API 和XPath 支持! 下载地址:http://htmlagilitypack.codeplex. ...
- UIBarButtonItem-添加自定义Left或者Right按钮 <总结>
为UINavigationController添加UINavigationItem 1.添加返回导航按钮backBarButtonItem 1.用系统自带的返回按钮 UIBarButtonIt ...
- C#简单一句代码,实现pictureBox的照片另存为磁盘文件不出错
开发人事档案系统时,一般都要利用pictureBox对人员的照片进行操作,包括选择保存照片.另存照片.删除照片,如下图: 将照片保存到数据库和从数据库中删除,网友写了很多实用代码,非常好用.但是要将p ...