网络流初步——增广路算法(EK)模板
#include <iostream>
#include <queue>
#include<string.h>
using namespace std;
#define arraysize 201
int maxData = 0x7fffffff;
int a[][];
int flow[];
int pre[];
int n,m;
queue<int> q;
int BFS(int s,int t)
{
int i,j;
while(!q.empty())
q.pop();
for(i=;i<m+;i++)
{
pre[i]=-;
}
pre[s]=;
flow[s]= maxData;
q.push(s);
while(!q.empty())
{
int index=q.front();
q.pop();
if(index==t)
break;
for(i=;i<m+;++i)
{
if(i!=s && a[index][i]> && pre[i]==-)
{
pre[i]=index;
flow[i]=min(a[index][i],flow[index]);
q.push(i);
}
}
}
if(pre[t]==-)
return -;
else
return flow[t];
}
int ek(int s,int t)
{
int increasement=;
int sumflow=;
while((increasement=BFS(s,t))!=-)
{
int k=t;
while(k!=s)
{
int last=pre[k];
a[last][k]-=increasement;
a[k][last]+=increasement;
k = last;
}
sumflow+=increasement;
}
return sumflow;
}
int main()
{
int i,j;
int start,end,ci;
cin>>n>>m;
memset(a,,sizeof(a));
memset(flow,,sizeof(flow));
for(i=;i<n;i++)
{
cin>>start>>end>>ci;
a[start][end]+=ci;
}
cout<<ek(,m)<<endl;
return ;
}
网络流初步——增广路算法(EK)模板的更多相关文章
- HDU3549 Flow Problem(网络流增广路算法)
题目链接. 分析: 网络流增广路算法模板题.http://www.cnblogs.com/tanhehe/p/3234248.html AC代码: #include <iostream> ...
- 网络流初步:<最大流>——核心(增广路算法)(模板)
增广路的核心就是引入了反向边,使在进行道路探索选择的时候增加了类似于退路的东西[有一点dp的味道??] 具体操作就是:1.首先使用结构体以及数组链表next[ MAXN ]进行边信息的存储 2.[核心 ...
- Power Network (最大流增广路算法模板题)
Time Limit: 2000MS Memory Limit: 32768K Total Submissions: 20754 Accepted: 10872 Description A p ...
- hdu 3549 Flow Problem(增广路算法)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3549 模板题,白书上的代码... #include <iostream> #include & ...
- 网络流——增广路算法(dinic)模板 [BeiJing2006]狼抓兔子
#include<iostream> #include<cstring> #include<algorithm> #include<cmath> #in ...
- POJ-1273-Drainage Ditches 朴素增广路
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 70588 Accepted: 2743 ...
- 一般增广路方法求网络最大流(Ford-Fulkerson算法)
/* Time:2015-6-18 接触网络流好几天了 写的第一个模版————Ford-Fulkerson算法 作用:求解网络最大流 注意:源点是0 汇点是1 如果题目输入的是1到n 请预处理减1 * ...
- hdu 3549 Flow Problem【最大流增广路入门模板题】
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3549 Flow Problem Time Limit: 5000/5000 MS (Java/Others ...
- PIGS POJ - 1149网络流(最短增广路---广搜) + 建图
题意: 第一行输入m和n,m是猪圈的数量,n是顾客的数量,下面n行 第 i+1行表示第i个顾客 , 输入第一个数字表示有几把猪圈的钥匙,后面输入对应的猪圈,最后一个数字输入顾客想买几头猪. 建图: 设 ...
随机推荐
- 获取元素位置信息:getBoundingClientRect
一个神奇的方法. 一.历史 偷个懒,上个传送门:http://www.cnblogs.com/2050/archive/2012/02/01/2335211.html 二.介绍 DOM元素方法,返回一 ...
- Swift—默认构造函数-备
结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数.构造函数没有返回值,可以重载.在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数.默认构造函 ...
- [POJ] 3020 Antenna Placement(二分图最大匹配)
题目地址:http://poj.org/problem?id=3020 输入一个字符矩阵,'*'可行,'o'不可行.因为一个点可以和上下左右四个方向的一个可行点组成一个集合,所以对图进行黑白染色(每个 ...
- [51单片机]18B20驱动函数
/**********DS18B20.h**********/ #include "REG52.H" #include "INTRINS.H" sbit DQ ...
- uva10003 Cutting Sticks
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&p ...
- oracle11g rac asm 实例内存修改
ASM实例内存修改 memory_max_target(它为静态参数,修改完成后需要重启实例) memory_target(它为动态参数,不需要重启实例) SQL> select name,is ...
- COJ 0801 非传统题(一)
非传统题(一) 难度级别:A: 运行时间限制:1000ms: 运行空间限制:262144KB: 代码长度限制:2000000B 试题描述 大家好!我是COJ第一道非传统题,是不是感觉非常的excite ...
- delphi TCXTreelist 通过代码控制行的可编辑性
procedure TfrmSetOutPzTradeDeptPerson.grdTradeClientEditing(Sender: TObject; AColumn: TcxTreeListCo ...
- mongodb sort limit和skip用法
> db.mediaCollection.find().skip().toArray() [ { "_id" : ObjectId("5353463193efef0 ...
- 多个ajax按照顺序执行的方法
$.ajax({ dataType: "json", async: false, //只需将此属性设置为false url: ~~, type: "GET", ...