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. 【JAVA网络流之浏览器与服务器模拟】

    一.模拟服务器获取浏览器请求http信息 代码: package p06.TCPTransferImitateServer.p01.ImitateServer; import java.io.IOEx ...

  2. WebRTC之带宽控制部分学习(1) ------基本demo的介绍

    转自:http://blog.csdn.net/u013160228/article/details/46392037 WebRTC的代码真是非常之大啊,下载以及编译了我好几天才搞完..... 可以看 ...

  3. Unity3d 提示 "The scripts file name does not match the name of the class defined in the script!"的解决办法

    有两个原因,一个是文件的名称和类名不一致 第二个原因是有命名空间, 排除应该是可以修复的

  4. 无法定位程序输入点 _glutCreateWindowWithExit于动态链接库glut32.dll上

    程序运行提示错误"无法定位程序输入点 _glutCreateWindowWithExit于动态链接库glut32.dll上",网上查了说是opengl的.lib和.dll版本过低, ...

  5. 强化的单例属性_Effective Java

    Singleton指的是仅仅被实例化一次的类,比如唯一的系统组件等,成为Singleton的类测试起来也比较困难. 常用的方法: 1.公有静态final域+私有构造器 public class Egg ...

  6. hdu 5833 Zhu and 772002 高斯消元

    Zhu and 772002 Problem Description Zhu and 772002 are both good at math. One day, Zhu wants to test ...

  7. Socket 通讯

    #import "ViewController.h" #import <sys/socket.h> #import <netinet/in.h> #impo ...

  8. Android Studio 插件整理

    1.GsonFormat 快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程. 使用方法:快捷键Alt+S也可以使用Alt+Insert选择G ...

  9. MySQL中的SQL语言

    从功能上划分,SQL 语言可以分为DDL,DML和DCL三大类.1. DDL(Data Definition Language)数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 :CRE ...

  10. 【转】Linux IO实时监控iostat命令详解

    转自:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858810.html 简介 iostat主要用于监控系统设备的IO负载情况,iosta ...