题意:

2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20
2 1 1 2 表示 共有2个节点,生产能量的点1个,消耗能量的点1个, 传递能量的通道2条;
(0,1)20 (1,0)10 代表(起点,终点)最大传递的能量 (0)15 (产生能量的点)产生的最大能量
(1)20 (消费能量的点)消费的最大能量 初学网络流,我想从基础练起;就先用EK算法写一遍 这道题看似很难,但其实只要加一个源点以及汇点,让所有的产生能量的点指向源点,让所有的消费能量的点指向汇点;
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
#define N 110
#define INF 0x3f3f3f3f
#define Min(a, b) a<b?a:b
int G[N][N], pre[N]; int EK(int s, int e);
bool BFS(int s, int e); int main()
{
int point, source, dest, edge;
while(scanf("%d%d%d%d", &point, &source, &dest, &edge)!=EOF)
{
int a, b, flow, in, inflow, out, outflow;
char ch;
memset(G, 0, sizeof(G));
for(int i=0; i<edge; i++)
{
//scanf("(%d,%d)%d", &a, &b, &flow);
cin>>ch>>a>>ch>>b>>ch>>flow;
G[a+1][b+1]+=flow;
} for(int i=0; i<source; i++)
{
//scanf("(%d)%d", &out, &outflow);
cin>>ch>>out>>ch>>outflow;
G[0][out+1]+=outflow;
} for(int i=0; i<dest; i++)
{
//scanf("(%d)%d", &in, &inflow);
cin>>ch>>in>>ch>>inflow;
G[in+1][point+1]+=inflow;
} int ans=EK(0, point+1);
printf("%d\n", ans); }
return 0;
} int EK(int s, int e)
{
int maxflow=0; while(BFS(s, e))
{
int minflow=INF; for(int i=e; i!=s; i=pre[i])
minflow=Min(minflow, G[pre[i]][i]); for(int j=e; j!=s; j=pre[j])
{
G[pre[j]][j]-=minflow;
G[j][pre[j]]+=minflow;
}
maxflow+=minflow;
} return maxflow;
} bool BFS(int s, int e)
{
memset(pre, -1, sizeof(pre)); queue<int>Q;
Q.push(s); while(Q.size())
{
int i=Q.front(); Q.pop(); if(i==e)
return true; for(int j=0; j<=e; j++)
{
if(G[i][j]&&pre[j]==-1)
{
pre[j]=i;
Q.push(j);
}
}
}
return false;
}
 

POJ 1459 网络流 EK算法的更多相关文章

  1. 最大网络流 EK 算法

    网络流是什么类型的问题,看一道题目你就知道了 点击打开链接 . 默认具备图论的基本知识,网络流概念比较多,先看看书熟悉一下那些概念.比较好!一个寄出的网络最大流.EK算法写的. 这是一幅网络,求S   ...

  2. 网络流EK算法模板

    \(EK\)算法的思想就是每一次找一条增广路进行增广. 注意几个点: 存图时\(head\)数组要设为\(-1\). 存图的代码是这样的: inline void add(int u, int v, ...

  3. HDU1532 Drainage Ditches 网络流EK算法

    Drainage Ditches Problem Description Every time it rains on Farmer John's fields, a pond forms over ...

  4. Drainage Ditches(网络流(EK算法))

    计算最大流,EK算法模板题. #include <stdio.h> #include <string.h> #include <queue> using names ...

  5. poj 1459 网络流问题`EK

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 24930   Accepted: 12986 D ...

  6. Power Network POJ - 1459 [网络流模板]

    http://poj.org/problem?id=1459 嗯,网络流模板...多源点多汇点的图,超级汇点连发电厂,用户连接超级汇点 Status Accepted Time 391ms Memor ...

  7. Power Network (poj 1459 网络流)

    Language: Default Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 23407   ...

  8. 网络流Ek算法

    例题:  Flow Problem HDU - 3549 Edmonds_Karp算法其实是不断找增广路的过程. 但是在找的过程中是找"最近"的一天增广路, 而不是找最高效的一条增 ...

  9. POJ 3281 网络流dinic算法

    B - Dining Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit S ...

随机推荐

  1. hdu 4587(割点的应用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4587 思路:题目的意思很简单,就是删除任意2个节点以及关联的边,求图的最大连通分量数.我们知道删除割点 ...

  2. [Python2.x] 利用commands模块执行Linux shell命令

    用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态和结果,下面是commands模块的3个主要 ...

  3. CodeForces 213 E

    /* 线段树 + hash: 首先我们可以知道A序列是1~n的排列,那么我们可以先在B序列中把1~n的排列找出来,看其相对位置是否与A相同(hash可做),相同即表明存在一个d满足条件. 以此类推,我 ...

  4. JSF -> 导航(Navigation)

    在使用jsf框架时,肯定会用到faces-config.xml. 而其中就会出现很多的Navigation项. 其实这些Navigation就是一些页面跳转的东西. 以下内容来自http://blog ...

  5. JVM 的 Xms 和 Xmx 设置一样大小的内存容量

    4. [推荐]在线上生产环境,JVM 的 Xms 和 Xmx 设置一样大小的内存容量,避免在 GC 后调整堆 大小带来的压力. 现在,我们知道了Elasticsearch所公开的缓存和缓冲区,可以尝试 ...

  6. 【转】PowerVM 的主要组成部分及概念

    PowerVM 是在基于 IBM POWER 处理器的硬件平台上提供的具有行业领先水平的虚拟化技术家族.它是 IBM Power System 虚拟化技术全新和统一的品牌(逻辑分区,微分区,Hyper ...

  7. javascript实例:两种方式实现tab栏选项卡

    方法1: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...

  8. PAT 1074 宇宙无敌加法器 (20 分)

    地球人习惯使用十进制数,并且默认一个数字的每一位都是十进制的.而在 PAT 星人开挂的世界里,每个数字的每一位都是不同进制的,这种神奇的数字称为“PAT数”.每个 PAT 星人都必须熟记各位数字的进制 ...

  9. C++学习之旅get、getline的使用方法

    C++学习之旅get.getline的使用方法 面向行的输入:cin.getline(). 该函数读取整行.它使用通过回车键输入的换行符来确定输入结尾.要调用这样的方法,能够使用cin.getline ...

  10. HDFS权限

    1.1 超级用户 启动namenode服务的用户就是超级用户, 该用户的组是supergroup 1.2 文件权限管理   1.2.1 创建时的owner和group 文件或者目录被创建之时,服从BS ...