1、HDU-3549   Flow Problem

2、链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549

3、总结:模板题,参考了 http://www.cnblogs.com/Lyush/archive/2011/08/08/2130660.html  ,里面有几种模板,没太看懂

题意:给定有向图,求第1到第n个点的最大流。

#include<iostream>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
#include<cstdio>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
const int N=; int mapn[][],flow[][]; //mapn存储边最大容量,flow存储边实际容量
int path[],pre[]; //path存储当前结点流量,pre存储父亲路径
int n,m; int bfs()
{
memset(path,,sizeof(path));
memset(pre,,sizeof(pre)); queue<int>q;
q.push();
int pos;
path[]=INF; //下面要比较到path[1]
while(!q.empty())
{
pos=q.front();
q.pop();
for(int i=;i<=n;i++)
{
if(!path[i]&&flow[pos][i]<mapn[pos][i]){
//如果这条边没有饱和或者形成了回流,就更新当前结点的流量 path[i]=min(path[pos],mapn[pos][i]-flow[pos][i]);
//即path[i]要取这条增广路径上残余流量的最小值 pre[i]=pos; //记录下父亲路径
q.push(i);
}
}
} return path[n];
} int Max_Flow()
{
int ans=,pos,path_n;
memset(flow,,sizeof(flow)); while(true)
{
path_n=bfs(); //每一次bfs获得一条增广路径
if(!path_n)return ans; //如果找不到增广路径就跳出
pos=n;
while(pos!=){ //更新flow
flow[pre[pos]][pos]+=path_n;
flow[pos][pre[pos]]-=path_n;
pos=pre[pos];
}
ans+=path_n;
} } int main()
{
int t;
scanf("%d",&t);
for(int test=;test<=t;test++)
{
memset(mapn,,sizeof(mapn));
scanf("%d%d",&n,&m);
int x,y,c;
while(m--){
scanf("%d%d%d",&x,&y,&c);
mapn[x][y]+=c;
} int max_flow;
max_flow=Max_Flow();
printf("Case %d: %d\n",test,max_flow); } return ;
}

HDU-3549 最大流模板题的更多相关文章

  1. 【网络流#1】hdu 3549 - 最大流模板题

    因为坑了无数次队友 要开始学习网络流了,先从基础的开始,嗯~ 这道题是最大流的模板题,用来测试模板好啦~ Edmonds_Karp模板 with 前向星 时间复杂度o(V*E^2) #include& ...

  2. HDU 1532 最大流模板题

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1532 最近在学网络流,学的还不好,先不写理解了,先放模板... 我觉得写得不错的博客:http://blo ...

  3. 【网络流#2】hdu 1533 - 最小费用最大流模板题

    最小费用最大流,即MCMF(Minimum Cost Maximum Flow)问题 嗯~第一次写费用流题... 这道就是费用流的模板题,找不到更裸的题了 建图:每个m(Man)作为源点,每个H(Ho ...

  4. hdu 1532 Drainage Ditches(最大流模板题)

    Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. HDU-3549Flow Problem 最大流模板题

    传送门 这里是Ford-Fulkerson写的最大流模板 #include <iostream> #include <cstdio> #include <algorith ...

  6. HDU 2222 AC自动机模板题

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2222 AC自动机模板题 我现在对AC自动机的理解还一般,就贴一下我参考学习的两篇博客的链接: http: ...

  7. HDU 1251 Trie树模板题

    1.HDU 1251 统计难题  Trie树模板题,或者map 2.总结:用C++过了,G++就爆内存.. 题意:查找给定前缀的单词数量. #include<iostream> #incl ...

  8. HDU 3065 (AC自动机模板题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3065 题目大意:多个模式串,范围是大写字母.匹配串的字符范围是(0~127).问匹配串中含有哪几种模 ...

  9. HDU 2896 (AC自动机模板题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2896 题目大意:多个模式串.多个匹配串.其中串的字符范围是(0~127).问匹配串中含有哪几个模式串 ...

随机推荐

  1. PHP+MYSQL+AJAX实现每日签到功能

    一.web前端及ajax部分 文件index.html <html> <head> <meta http-equiv=Content-Type content=" ...

  2. VR 相关专业词汇

    最近在看 SIGGRAPH2015 有关 VR Display and Interaction 的几篇文章,之前从来没看过有关方面的 paper,一看才发现专业词汇太多了,根本不懂啊,幸亏 Paper ...

  3. linux 用户之间的切换

    从root用户切换到普通用户fxm, 使用如下命令:su - fxm 从普通用户切换到root用户,使用如下命令:su - 或者 su, root可以省略不写.

  4. C语言中运算符的口决

  5. 智能车学习(六)——OLED屏幕使用

    一.代码展示 1.头文件: #ifndef OLED_H_ #define OLED_H_ extern unsigned char Draw[]; extern const unsigned cha ...

  6. Java生成验证码小工具

    无意中看到一个生成简易验证码的小工具类(保存学习): 工具类代码: import java.awt.BasicStroke; import java.awt.Color; import java.aw ...

  7. 【转】备份Kylin的元数据

    http://blog.csdn.net/jiangshouzhuang/article/details/51290239 Kylin组织它所有的元数据(包括cube descriptions and ...

  8. LoadRunner替换字符串(可以同时替换多个)

    在global.h中添加代码 /* * @param char* dest 目标串,也就是替换后的新串 * @param const char* src 源字符串,被替换的字符串 * @param c ...

  9. Tomcat不输入项目名进入自己项目(根目录指向自己的项目)

    <Host name="localhost" appBase="webapps" unpackWARs="true" autoDepl ...

  10. 改变图片尺寸(python)

    for name in /图片路径; do convert -resize 256x256! $name $namedone