Poj(1459),最大流,EK算法
题目链接:http://poj.org/problem?id=1459
Time Limit: 2000MS | Memory Limit: 32768K | |
Total Submissions: 27074 | Accepted: 14066 |
Description
An example is in figure 1. The label x/y of power station u shows that p(u)=x and pmax(u)=y. The label x/y of consumer u shows that c(u)=x and cmax(u)=y. The label x/y of power transport line (u,v) shows that l(u,v)=x and lmax(u,v)=y. The power consumed is Con=6. Notice that there are other possible states of the network but the value of Con cannot exceed 6.
Input
Output
Sample Input
2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20 7 2 3 13 (0,0)1 (0,1)2 (0,2)5 (1,0)1 (1,2)8 (2,3)1 (2,4)7(3,5)2 (3,6)5 (4,2)7 (4,3)5 (4,5)1 (6,0)5(0)5 (1)2 (3)2 (4)1 (5)4
Sample Output
15 6
Hint
Source
#include <stdio.h> #include <string.h> #include <queue> #include <iostream>using namespace std;#define MAX 120 #define INF 0x3f3f3f3fint n,np,nc,m; int cap[MAX][MAX];int main() {//freopen("input.txt","r",stdin);int from,to,value;while(scanf("%d%d%d%d",&n,&np,&nc,&m)!=EOF){memset(cap,0,sizeof(cap));///读取输电线的数据while(m--){scanf(" (%d,%d)%d",&from,&to,&value);cap[from][to]=value;}///读取发电站数据while(np--){scanf(" (%d)%d",&from,&value);cap[n][from]=value;}///读取消费者数据while(nc--){scanf(" (%d)%d",&from,&value);cap[from][n+1]=value;}int ans = 0;queue<int> Q;int flow[MAX][MAX]; ///剩余网络int node[MAX]; ///最小流int pre[MAX]; ///增广路径 memset(flow,0,sizeof(flow));while(true){Q.push(n);memset(node,0,sizeof(node));node[n] = INF;int u;while(!Q.empty()){u = Q.front();Q.pop();for(int i=0; i<=n+1; i++){if(!node[i]&&cap[u][i]>flow[u][i]){Q.push(i);node[i] = min(node[u],cap[u][i]-flow[u][i]);pre[i] = u;}}}if(node[n+1]==0)break;for(u=n+1; u!=n; u=pre[u]){flow[pre[u]][u] +=node[n+1];flow[u][pre[u]] -= node[n+1];}ans+=node[n+1];}printf("%d\n",ans);}return 0; }
转载于:https://www.cnblogs.com/TreeDream/p/5752109.html
Poj(1459),最大流,EK算法相关推荐
- 网络流——最大流EK算法讲解
网络流--最大流EK算法讲解 好了,这是第二篇博客了,如第一篇所述,来讲一讲刚刚理解的网络流.因为本人只会EK算法,所以先讲这个算法.(我会去补知识点的!!!) 什么是网络流??? 读者们刚接触这个知 ...
- 网络流最大流----EK算法
先来介绍一些基本概念: 网络是指一个有向图G=(V,E),有两个特殊节点:源点S和汇点T.每条有向边(x,y)都有一个权值c(x,y),称为边的容量.如果(x,y)不在图中,那么就有c(x,y)=0. ...
- (通俗易懂小白入门)网络流最大流——EK算法
网络流 网络流是模仿水流解决生活中类似问题的一种方法策略,来看这么一个问题,有一个自来水厂S,它要向目标T提供水量,从S出发有不确定数量和方向的水管,它可能直接到达T或者经过更多的节点的中转,目前确定 ...
- 网络流最大流EK算法板子
刚刚看了个板子,自己能够理解的也不是太深,但是大体上懂什么意思了. #include<stdio.h> #include<string.h> #include<iostr ...
- 网络流问题以及EK算法复杂度分析
网络流问题以及EK算法复杂度分析 一.网络流算法 通过一个例子引入网络流问题. 现有一个自来水厂要往家里通水,自来水厂用Vs表示,家用Vt表示.从自来水厂到家之间连接了很多水管,并且中途经过很多转接点 ...
- [Poj 1459] 网络流(一) {基本概念与算法}
{ 凸包的内容还欠整理 先来侃侃一个月以前就想写写的网络流 本文介绍网络流 网络流的算法 及其应用 这些问题没事想想还是很有意思的 } ================================ ...
- HDU 3549 Flow Problem(最大流模版EK算法)
题目链接 第一道最大流,赤裸裸的模版题,刚好可以熟悉模版用.今天看了一下最大流,就看了一个EK算法,感觉有点和二分图匹配算法有点相似,对于最大流问题有点了解了,不过为什么这么做,也不是 很懂,只是把代 ...
- 最大流EK和Dinic算法
最大流EK和Dinic算法 EK算法 最朴素的求最大流的算法. 做法:不停的寻找增广路,直到找不到为止 代码如下: @Frosero #include <cstdio> #include ...
- 图论 —— 网络流 —— 最大流 —— FF 算法与 EK 算法
[概述] FF 算法与 EK 算法是求解最大流的一般增广路方法,其时间复杂度均为 O(n*m*m) Ford-Fulkerson 算法是求解最大流的最基础的算法,其核心思想是增广路定理:网络达到最大流 ...
- 最大流算法之一——EK算法
EK算法流程 EK算法的流程很简单: 随意找一个可行流作为流量网络更新的基础(一般题目没有规定可以采用流量为0的可行流) 利用bfsbfsbfs找一条从源点到汇点的可行流路径 用新找到的可行流路径更新 ...
最新文章
- java文件名与class关系
- 通过案例对SparkStreaming透彻理解-3
- mysql 日期时间类型 自动转型 及 运算
- 【LeetCode】拓扑排序
- python set 随机_python – Set.pop()不是随机的吗?
- 《商业智能BI白皮书3.0》正式发布(附下载链接)
- 【JAVA 第五章 】课后习题 Vector类的 初使用
- Chrome 下input的默认样式
- CentOS7-Docker 配置国内镜像源
- 浪潮商用房树新:云数据库时代来临,看浪潮商用机器如何以Power系列夯实云之基石...
- Web 性能优化:使用 CSS font-display 控制字体加载和替换
- Android工程重新编译问题
- Nginx的配置使用,启动、重启、关闭,以及路径配置
- 区块链 PBFT最多多少个节点
- qt实现简易时钟(Qpaintevent),可以当作桌面摆件
- mysql5.0驱动_mysql5.0驱动包
- 笔记:PJL的一些用法
- c语言实现fft原理,新手小白一看就会,FFT算法的原理详解
- 通用定时器产生PWM
- sRGB转CIEXYZ转CIELAB,以及色彩距离
热门文章
- 计算机试题新编实训,计算机基础与实训 练习题
- Eclipse更改默认字符集 设置UTF-8
- 一个鸡蛋”改变TA的世界——让贫困地区的孩子每天都能吃上一个鸡蛋
- excel 2010 group and subtotal function
- 黑客游戏系列--------第四关
- eclipse无法添加Tomcat7
- Java通过FTP服务器上传下载文件的方法
- LintCode-375.克隆二叉树
- You can't specify target table 'myusertable' for ......in FROM clause
- Vista上远程管理Hyper-V服务器