网络流初步——增广路算法(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个顾客 , 输入第一个数字表示有几把猪圈的钥匙,后面输入对应的猪圈,最后一个数字输入顾客想买几头猪. 建图: 设 ...
随机推荐
- phpcms V9 修改生成静态文件路径/html
在论坛看到部分用户反馈这个问题,要修改的其实是html_root的值,默认是"/html"如果要生成在网站根目录的话,这个值则要为空.论坛上现在看到的办法是打开caches\con ...
- phpcms v9二次开发之数据模型类
系统模型类:model.class.php数据模型类的位置:/phpcms/libs/classes phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询.添加.修改和删除数据等操作,所 ...
- iscroll.js
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- PreparedStatement可以有效地防止sql被注入
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import jav ...
- 转:【创龙TMS320C6748开发板试用】相关软件的安装与基本设置+CCS安装失败分析
http://bbs.elecfans.com/jishu_542000_1_1.html
- MCS-51单片机内部结构
8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解. 8051单片机包含中央处理器.程序存储器(ROM).数据存储器(RAM).定时/计数器.并行接口.串行接口和中断系统 ...
- Android 解决listview中checkBox错位选择
假如ListView,分成2页(或者设置数据可以纵向拉,可隐藏),每页3条数据,每个Listview的Item 里面有个checkBox,现在,当我选择第一页的前两天数据,翻到第二页,竟然第二页后两条 ...
- MFC之按键消息(长按处理)
想要实现长按键的一些控制,查了查可以通过捕获键盘事件,然后处理按键时需要进行的操作.下面简单的实现左右按键界面更新数值加减. 1. 重载PreTranslateMessage(MSG* pMsg)函 ...
- Angular.js VS. Ember.js:谁将成为Web开发的新宠?
这篇博文陈述的非常好,比较全面的剖析了Angular.js与Ember.js,下面的链接,供学习与参考: http://www.csdn.net/article/2013-09-09/2816880- ...
- 超给力的HTML5 3D动画欣赏及源码下载
HTML5有着非常巨大的魅力,尤其是CSS3和Cavnas,可以帮助页面渲染得非常炫酷.值得一提的是,利用HTML5的3D特性可以帮助你更加方便地在网页上实现3D动画特效.本文分享的这些HTML5 3 ...