题目链接。

分析:

这题描述的可不是一般的复杂.

其时就是很多源点、很多汇点,使尽量多流量的到达汇点。

因为有很多源点,就再设一个源点(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 (最大流)相关推荐

  1. POJ1459 Power Network —— 最大流

    题目链接:https://vjudge.net/problem/POJ-1459 Power Network Time Limit: 2000MS   Memory Limit: 32768K Tot ...

  2. 算法学习笔记 网络流之最大流算法

    文章目录 26.1 流网络 1. 流网络和流 2. 流的一个例子 3. 使用反平行边来建模问题 4. 具有多个源点和多个汇点的网络 26.2 *Ford-Fulkerson* 方法 1. 残存网络 2 ...

  3. 网络流(2)——用Ford-Fullkerson算法寻找最大流

    寻找最大流 在大规模战争中,后勤补给是重中之重,为了尽最大可能满足前线的物资消耗,后勤部队必然要充分利用每条运输网,这正好可以用最大流模型解决.如何寻找一个复杂网络上的最大流呢? 直觉上的方案 一种直 ...

  4. PhxRPC源码简析

    文章目录 前言 1. 背景 2. 特性 一.编译运行 1. 编译 2. 运行 二.整体框架 运行框架 代码框架 源码目录 生成代码 与svrkit的比较 三.network socket流 strea ...

  5. macOS - networksetup 命令

    networksetup 文章目录 networksetup 方法及使用 networkservice hardwareports computername dhcp.route.domain ipv ...

  6. 写作相关-----电路专业术语及英文翻译

    Chapter 1 Elements and Laws of Eletrical Circuits 电路 electrical circuit 电路模型 Circuit model 电源 source ...

  7. 007_SSSSS_ Neural Ordinary Differential Equtions

    Neural Ordinary Differential Equtions 本文是NeurIPS 2018 最佳文章, 作者的想法可以用<赤壁赋>中的一句话来微妙的体现:盖将自其变者而观之 ...

  8. 【POJ - 1459】Power Network(网络流最大流,建图)

    题干: A power network consists of nodes (power stations, consumers and dispatchers) connected by power ...

  9. [BZOJ1834][ZJOI2010]network 网络扩容 最大流+费用流

    1834: [ZJOI2010]network 网络扩容 Time Limit: 3 Sec  Memory Limit: 64 MB Submit: 3330  Solved: 1739 [Subm ...

  10. 重拾Java Network Programming(一)IO流

    前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...

最新文章

  1. c语言调式有错误,vsc调式c语言
  2. CSS使用线性渐变实现滚动进度条
  3. 深入理解Java虚拟机-Java内存区域透彻分析
  4. 计算一个list中数据的平均数、中位数和众数【python实现】
  5. mysql数据库ip地址_MySQL数据库存储IP地址的方法
  6. 工作经验教训_在设计工作五年后获得的经验教训
  7. hdu-5781 ATM Mechine(dp+概率期望)
  8. 初级第一旬05— 蓝字观试题
  9. Vue项目中使用图片裁切器 cropperjs (头像裁切)
  10. Pytorch开发环境安装(Windows版本)
  11. 【我的物联网成长记9】物联网平台安全如何破?
  12. 机器学习-Adaboost 算法(集成学习)
  13. 安装360后,visual studio 经常报各种莫名其妙的错误的解决方案
  14. SQL注入语法类型和sql盲注
  15. CSDN中用Markdown如何给文本加下划线(可延长下划线)
  16. 从毕业生到高级工程师:三位腾讯高级程序员的感悟
  17. 零基础系统化学习白帽黑客技术
  18. 工作20天之感悟(嵌入式开发)
  19. via自定义搜索引擎代码_Via浏览器自定义主页
  20. 互动游戏对战平台推荐:盘点很火的互动小游戏多人对战平台

热门文章

  1. 【数据结构(C语言)】数据结构-查找
  2. kafka处理大数据包
  3. C/C++开发_C语言里类似C++的构造与析构
  4. 【转】对 Rust 语言的分析
  5. ubuntu 的chmod 和 chown
  6. 避免在ASP.NET Core中使用服务定位器模式
  7. 使用 dom4j 解析 XML
  8. VSS无法访问的问题
  9. Qt5学习笔记之图标下载和转换
  10. kafka 小案例【二】 --kafka 设置多个消费着集群