Drainage Ditches(网络流(EK算法))
计算最大流,EK算法模板题。
#include <stdio.h>
#include <string.h>
#include <queue>
using namespace std;
const int maxn=;
const int maxm=;
const int INF=<<;
int n,m,s,t,cnt,max_flow;
int head[maxn],pre[maxn],a[maxn]; struct node
{
int u;
int v;
int cap;
int next;
} edge[maxm];
void init()
{
memset(head,-,sizeof(head));
cnt = ;
}
void add(int u,int v,int cap)//用邻接表存储
{
edge[cnt].u = u;
edge[cnt].v = v;
edge[cnt].cap = cap;
edge[cnt].next = head[u];
head[u] = cnt++;
}
void EK(int s)
{
queue<int>q;
max_flow = ;
for (;;)
{
memset(a,,sizeof(a));
q.push(s);
a[s] = INF;//源点容量为无穷
while(!q.empty())
{
int u = q.front();
q.pop();
for (int i = head[u]; i!=-; i=edge[i].next)
{
int v = edge[i].v;
if (!a[v] && edge[i].cap > )
{
q.push(v);
pre[v] = i;// 记录V的前驱的下标
a[v] = std::min(a[u],edge[i].cap);//更新每个节点的flow
}
}
}
if(a[t]==)
break;
int i;
for (int u = t; u!=s; u = edge[i].u)//修改增光路
{
i = pre[u];
edge[i].cap -= a[t];//正向的边容量减去残余量
edge[i^].cap += a[t];//反向的边容量(初始为0)加上残余量
}
max_flow += a[t];
}
}
int main()
{
while(~scanf("%d%d",&m,&n))
{
init();
while(m--)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w);
add(v,u,);//加反向边 }
s = ;
t = n;
EK(s);
printf("%d\n",max_flow);
}
return ;
}
Drainage Ditches(网络流(EK算法))的更多相关文章
- HDU1532 Drainage Ditches 网络流EK算法
Drainage Ditches Problem Description Every time it rains on Farmer John's fields, a pond forms over ...
- HDU1532_Drainage Ditches(网络流/EK模板/Dinic模板(邻接矩阵/前向星))
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- NYOJ 323 Drainage Ditches 网络流 FF 练手
Drainage Ditches 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 Every time it rains on Farmer John's fields, ...
- POJ 1459 网络流 EK算法
题意: 2 1 1 2 (0,1)20 (1,0)10 (0)15 (1)20 2 1 1 2 表示 共有2个节点,生产能量的点1个,消耗能量的点1个, 传递能量的通道2条:(0,1)20 (1,0) ...
- 最大网络流 EK 算法
网络流是什么类型的问题,看一道题目你就知道了 点击打开链接 . 默认具备图论的基本知识,网络流概念比较多,先看看书熟悉一下那些概念.比较好!一个寄出的网络最大流.EK算法写的. 这是一幅网络,求S ...
- POJ 1273 Drainage Ditches (网络流Dinic模板)
Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover ...
- 网络流EK算法模板
\(EK\)算法的思想就是每一次找一条增广路进行增广. 注意几个点: 存图时\(head\)数组要设为\(-1\). 存图的代码是这样的: inline void add(int u, int v, ...
- POJ 1273:Drainage Ditches 网络流模板题
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 63339 Accepted: 2443 ...
- USACO 4.2 Drainage Ditches(网络流模板题)
Drainage DitchesHal Burch Every time it rains on Farmer John's fields, a pond forms over Bessie's fa ...
随机推荐
- url中含有中文路径时访问出现404问题
/** * URL中文字符编码转换 * @param url 含中文字符的URL * @return */ public static String getChineseURICode(String ...
- SQL几种常用的函数
函数的种类: 算数函数(数值计算的函数) 字符串函数(字符串操作的函数) 日期函数(用来进行日期操作的函数) 转换函数(用来转换数据类型和值的函数) 聚合函数(用来进行数据聚合的函数) 算数函数(+- ...
- Cesium学习笔记(九):导入3D模型(obj转gltf)
在用cesium的过程中难免需要导入别人做好的3D模型,这时候就需要将这些模型转成gltf格式了 当然,官方也给了我们一个网页版的转换器,但是毕竟是网页版的,效率极其低下,文件还不能太大,所以我们就需 ...
- Fang Fang HDU - 5455 (思维题)
Fang Fang says she wants to be remembered. I promise her. We define the sequence FF of strings. F0 = ...
- uva 12108 Extraordinarily Tired Students (UVA - 12108)
算法完全转载...原博客(https://blog.csdn.net/u014800748/article/details/38407087) 题目简单叙述 题目就是一堆学生他们有清醒的时候和昏迷的时 ...
- JS练习:切换图片
代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...
- 64.root object的理解
一.root object的理解 就是某个type对应的mapping json,包括properties,metadata(_id,_source,_type),settings(analy ...
- Spider-Python实战之通过Python爬虫爬取图片制作Win7跑车主题
1. 前期准备 1.1 开发工具 Python 3.6 Pycharm Pro 2017.3.2 Text文本 1.2 Python库 requests re urllib 如果没有这些Python库 ...
- linux学习2-压缩与解压
1.zip 打包文件件 $ zip -r -q -o shiyanlou.zip /home/shiyanlou $ du -h shiyanlou.zip $ file shiyanlou.zip ...
- 越来越好玩,SPRINGMVC
了解了JSP和SERVLET的运行机制, 看完SPRING的内容,理解了一些IOC及AOP之后,进入SPRINGMVC和SPRINGBOOT,感觉轻松多啦.