POJPower Network (最大流)
题目链接。
分析:
这题描述的可不是一般的复杂.
其时就是很多源点、很多汇点,使尽量多流量的到达汇点。
因为有很多源点,就再设一个源点(0号),使得0号到其它源点的容量为其它源点的初始量,同样设一汇点(n+1),使得其它汇点到该汇点的容量为其它汇点的初始量,如此就把很多的源点和汇点看成普通的点,单源单汇最大流。
最大流用的是白书上的增广路算法。
AC代码如下:
#include <iostream> #include <queue> #include <cstdio> #include <cstring> #include <vector>using namespace std;const int maxn = 110; const int INF = (1<<30);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, 0, sizeof(flow));int f = 0;while(true) {memset(a, 0, sizeof(a));a[s] = INF;q.push(s);while(!q.empty()) { //BFS 找增广路int u = q.front(); q.pop();for(int v=1; v<=n; v++) if(!a[v] && cap[u][v]>flow[u][v]){//找到新节点vp[v] = u; q.push(v);a[v] = min(a[u], cap[u][v]-flow[u][v]);}}if(a[t] == 0) 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[200];while(scanf("%d%d%d%d", &n, &np, &nc, &m) == 4) {memset(cap, 0, sizeof(cap));for(int i=0; i<m; i++) {scanf("%s", s);sscanf(s, "(%d,%d)%d", &u, &v, &c);u++; v++;cap[u][v] += c;}for(int i=0; i<np; i++) { //处理源点scanf("%s", s);sscanf(s, "(%d)%d", &v, &c);v++;cap[0][v] += c;}for(int i=0; i<nc; i++) { //处理汇点scanf("%s", s);sscanf(s, "(%d)%d", &u, &c);u++;cap[u][n+1] += c;}printf("%d\n", EdmondsKarp(0, n+1, n+1));}return 0; }
转载于:https://www.cnblogs.com/tanhehe/p/3255316.html
POJPower Network (最大流)相关推荐
- POJ1459 Power Network —— 最大流
题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS Memory Limit: 32768K Tot ...
- 算法学习笔记 网络流之最大流算法
文章目录 26.1 流网络 1. 流网络和流 2. 流的一个例子 3. 使用反平行边来建模问题 4. 具有多个源点和多个汇点的网络 26.2 *Ford-Fulkerson* 方法 1. 残存网络 2 ...
- 网络流(2)——用Ford-Fullkerson算法寻找最大流
寻找最大流 在大规模战争中,后勤补给是重中之重,为了尽最大可能满足前线的物资消耗,后勤部队必然要充分利用每条运输网,这正好可以用最大流模型解决.如何寻找一个复杂网络上的最大流呢? 直觉上的方案 一种直 ...
- PhxRPC源码简析
文章目录 前言 1. 背景 2. 特性 一.编译运行 1. 编译 2. 运行 二.整体框架 运行框架 代码框架 源码目录 生成代码 与svrkit的比较 三.network socket流 strea ...
- macOS - networksetup 命令
networksetup 文章目录 networksetup 方法及使用 networkservice hardwareports computername dhcp.route.domain ipv ...
- 写作相关-----电路专业术语及英文翻译
Chapter 1 Elements and Laws of Eletrical Circuits 电路 electrical circuit 电路模型 Circuit model 电源 source ...
- 007_SSSSS_ Neural Ordinary Differential Equtions
Neural Ordinary Differential Equtions 本文是NeurIPS 2018 最佳文章, 作者的想法可以用<赤壁赋>中的一句话来微妙的体现:盖将自其变者而观之 ...
- 【POJ - 1459】Power Network(网络流最大流,建图)
题干: A power network consists of nodes (power stations, consumers and dispatchers) connected by power ...
- [BZOJ1834][ZJOI2010]network 网络扩容 最大流+费用流
1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec Memory Limit: 64 MB Submit: 3330 Solved: 1739 [Subm ...
- 重拾Java Network Programming(一)IO流
前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...
最新文章
- c语言调式有错误,vsc调式c语言
- CSS使用线性渐变实现滚动进度条
- 深入理解Java虚拟机-Java内存区域透彻分析
- 计算一个list中数据的平均数、中位数和众数【python实现】
- mysql数据库ip地址_MySQL数据库存储IP地址的方法
- 工作经验教训_在设计工作五年后获得的经验教训
- hdu-5781 ATM Mechine(dp+概率期望)
- 初级第一旬05— 蓝字观试题
- Vue项目中使用图片裁切器 cropperjs (头像裁切)
- Pytorch开发环境安装(Windows版本)
- 【我的物联网成长记9】物联网平台安全如何破?
- 机器学习-Adaboost 算法(集成学习)
- 安装360后,visual studio 经常报各种莫名其妙的错误的解决方案
- SQL注入语法类型和sql盲注
- CSDN中用Markdown如何给文本加下划线(可延长下划线)
- 从毕业生到高级工程师:三位腾讯高级程序员的感悟
- 零基础系统化学习白帽黑客技术
- 工作20天之感悟(嵌入式开发)
- via自定义搜索引擎代码_Via浏览器自定义主页
- 互动游戏对战平台推荐:盘点很火的互动小游戏多人对战平台