HDU1532 网络流:最大流之福德福克森算法
问题描述:约翰是个农民,每次下雨的时候他的庄家总是会被淹没,这就意味着当庄家被水淹后需要很长时间才能重新生长出来,因此,约翰已经建立了一系列排水管道为了使他的庄家尽可能被淹没的最少,也就是说管道的排水量必须很大.作为一名工程师,约翰可以计算出管道网能排水的最大能力.
Input:输入包含多组用例,每组用例第一行是两个数N,M,N表示一共有N个管道,M表示一共有M个点,接下来N行每行输入三个数字a,b,c表示,a管道口到b管道口最大排水能力为c.
Output:对每一组用例,输出排水量的最大值
Sample Input:
5 4
1 2 40
1 4 20
2 4 20
2 3 30
3 4 10
Sample Output:
50
这里我采用的是Fold-Fulkerson算法。
//这里的起点默认为1,终点为节点数M #include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<string.h>
#define maxint 999999999
using namespace std;
int rest[][];//二位数组rest绘制有向图
int pre[];//保存每次需找的增广路径的前驱
int Min;//写法原因Min需定义为全局变量
bool bfs(int M)//增广路径的搜索
{
queue<int>que;
bool vis[];//常规搜索都有的标记数组vis;
memset(vis,,sizeof(vis));
memset(pre,-,sizeof(pre));//前驱数组初始化
que.push();
vis[]=;
while(!que.empty())
{
int s=que.front();
que.pop();
if(s==M)
{
return true;
} for(int i=;i<=M;i++)
{
if(rest[s][i]&&vis[i]==)//rest[s][t]不为0说明选择的这条路径中从s点到达i点的通道还未被充满,说明当前存在增广路径
{
pre[i]=s;//前驱数组更新
vis[i]=;
que.push(i);
}
}
}
return false;//若不存在增广路径则返回false说明找不到
} void update(int M)//对每次所选的路径可增加流量更新,返回并加到总流量数sum中
{
if(M==)//从后往前找起,知道找到起点为止
return;
int s=pre[M];
Min=min(Min,rest[s][M]);
update(s);//回溯更新
rest[s][M]-=Min;//正反路径进行更新的区别
rest[M][s]+=Min;
} int main()
{
int a,b,c;
int N,M;
while(scanf("%d%d",&N,&M)!=EOF)
{
memset(rest,,sizeof(rest));
for(int i=;i<=N;i++)
{
scanf("%d%d%d",&a,&b,&c);
rest[a][b]+=c;//想清楚为什么是+不是=
}
int sum=;
while(bfs(M))
{
Min=maxint;//由于可能有多次路径选择所以需要在while内对全局变量Min进行初始化
update(M);
sum+=Min;
}
printf("%d\n",sum);//输出到达终点可达到的最大流量
}return ;
}
HDU1532 网络流:最大流之福德福克森算法的更多相关文章
- HDU1532 网络流最大流【EK算法】(模板题)
<题目链接> 题目大意: 一个农夫他家的农田每次下雨都会被淹,所以这个农夫就修建了排水系统,还聪明的给每个排水管道设置了最大流量:首先输入两个数n,m ;n为排水管道的数量,m为节点的数量 ...
- POJ 1459-Power Network(网络流-最大流-ISAP)C++
Power Network 时间限制: 1 Sec 内存限制: 128 MB 题目描述 A power network consists of nodes (power stations, cons ...
- [POJ1273][USACO4.2]Drainage Ditches (网络流最大流)
题意 网络流最大流模板 思路 EK也不会超时 所以说是一个数据比较水的模板题 但是POJ有点坑,多组数据,而且题目没给 哭得我AC率直掉 代码 用的朴素Dinic #include<cstdio ...
- 网络流 最大流—最小割 之SAP算法 详解
首先引入几个新名词: 1.距离标号: 所谓距离标号 ,就是某个点到汇点的最少的弧的数量(即边权值为1时某个点到汇点的最短路径长度). 设点i的标号为level[i],那么如果将满足level[i]=l ...
- HDU 3081 Marriage Match II (网络流,最大流,二分,并查集)
HDU 3081 Marriage Match II (网络流,最大流,二分,并查集) Description Presumably, you all have known the question ...
- Redraw Beautiful Drawings(hdu4888)网络流+最大流
Redraw Beautiful Drawings Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- A simple Gaussian elimination problem.(hdu4975)网络流+最大流
A simple Gaussian elimination problem. Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65 ...
- 【bzoj3130】[Sdoi2013]费用流 二分+网络流最大流
题目描述 Alice和Bob做游戏,给出一张有向图表示运输网络,Alice先给Bob一种最大流方案,然后Bob在所有边上分配总和等于P的非负费用.Alice希望总费用尽量小,而Bob希望总费用尽量大. ...
- 【bzoj1822】[JSOI2010]Frozen Nova 冷冻波 计算几何+二分+网络流最大流
题目描述 WJJ喜欢“魔兽争霸”这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能Frozen Nova每次可以杀死一个小精灵.我们认为,巫妖和小精灵都可以看成是平面上的点. 当巫妖和小精灵之间的直线 ...
随机推荐
- C3P0连接池在hibernate和spring中的配置
首先为什么要使用连接池及为什么要选择C3P0连接池,这里就不多说了,目前C3P0连接池还是比较方便.比较稳定的连接池,能与spring.hibernate等开源框架进行整合. 一.hibernate中 ...
- hihoCoder#1082
刚开始学习C语言,准备在做hiho的题目的过程中来学习,在此进行记录,如果代码中有错误或者不当的地方还请指正. 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 fjxmlh ...
- maven下载速度慢的解决方法(转)
原文链接:http://blog.csdn.net/u013009618/article/details/53980983 maven是支持镜像的,我们可以在maven的conf文件加下的settin ...
- java之并发编程:Lock
这是转的:http://www.cnblogs.com/dolphin0520/p/3923167.html * 在多线程编程里面一个重要的概念是锁定,如果一个资源是多个线程共享的,为了保证数据的完整 ...
- PCB设计规则考量之初识
PCB的设计规则可以分布局与走线.布局里最简单的原则就是避免信号之间的干扰,有把模拟部分与数字部分分开,把开关电源与数字部分分开,把端去耦电容靠近端点,而且从端点出来的电容容值按从小到大摆放效果会好些 ...
- [蟒蛇菜谱]Python日志记录最佳实践
# -*- coding: utf8 -*- import logging # 创建一个logger logger = logging.getLogger('mylogger') logger.set ...
- JS中offsetwidth等图文解释
网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offs ...
- Spring MVC学习笔记--认识SpringMVC
Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...
- CxImage在VS2010下的配置
http://blog.csdn.net/youzhuo/article/details/24601621 一.编译Cximage 1.在SourceForge上下载cximage702_full.7 ...
- httpclient学习
httpclient入门: http://www.ibm.com/developerworks/cn/opensource/os-httpclient/ httpclient证书导入:http: ...