题意

网络流最大流模板

思路

EK也不会超时

所以说是一个数据比较水的模板题

但是POJ有点坑,多组数据,而且题目没给

哭得我AC率直掉

代码

用的朴素Dinic

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
#define N 200010
#define INF 0x3fffffff
inline int read() {
int x = ,f = ;
char ch = getchar();
while(ch<''||ch>'') { if(ch=='-') f = -; ch = getchar(); }
while(ch>=''&&ch<='') {x=(x<<)+(x<<)+(ch^);ch=getchar();}
return x * f;
}
struct point{
int fr,to,val;
int nxt;
}edge[N];
int head[N];
int cnt;
void add_edge(int x,int y,int z)
{
edge[cnt].fr=x,edge[cnt].to=y,edge[cnt].val=z;
edge[cnt].nxt=head[x],head[x]=cnt++;
edge[cnt].fr=y,edge[cnt].to=x,edge[cnt].val=;
edge[cnt].nxt=head[y],head[y]=cnt++;
}
//我放弃链式前向星
int n,m,st,ed;
int deep[N];
int BFS()
{
queue<int>q;
memset(deep,,sizeof(deep));
q.push(st);
deep[st]=;
while(!q.empty())
{
int u=q.front();
q.pop();
for(int i=head[u];i!=-;i=edge[i].nxt)
{
int tmp=edge[i].to;
if(edge[i].val<= || deep[tmp]) continue;
deep[tmp]=deep[u]+;
q.push(tmp);
}
}
return deep[ed];
}
int ans;
int dfs(int u,int flow)//flow为到达终点最多能增广的值
{
if(u==ed) return flow;
int add=;
for(int i=head[u];i!=-&&add<flow;i=edge[i].nxt)
{
int v=edge[i].to;
if(deep[v]!=deep[u]+) continue;
if(!edge[i].val) continue;//剪枝
int tmpadd=dfs(v,min(edge[i].val,flow-add));
edge[i].val-=tmpadd;
edge[i^].val+=tmpadd;//sub
add+=tmpadd;
}
return add;
}
void Dinic()
{
while(BFS()) ans+=dfs(st,INF);
}
int main()
{
while(scanf("%d%d",&n,&m)==)
{
ans=;
st=,ed=m;
memset(edge,,sizeof(edge));
memset(head,-,sizeof(head));
for(int i=,u,v,co;i<=n;i++)
{
u=read(),v=read(),co=read();
add_edge(u,v,co);
}
Dinic();
printf("%d\n",ans);
}
return ;
}

[POJ1273][USACO4.2]Drainage Ditches (网络流最大流)的更多相关文章

  1. poj 1273 Drainage Ditches 网络流最大流基础

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 59176   Accepted: 2272 ...

  2. poj 1273 Drainage Ditches (网络流 最大流)

    网络流模板题. ============================================================================================ ...

  3. poj1273 Drainage Ditches Dinic最大流

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 76000   Accepted: 2953 ...

  4. 2018.07.06 POJ1273 Drainage Ditches(最大流)

    Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Description Every time it rains on Farmer J ...

  5. POJ1273&&Hdu1532 Drainage Ditches(最大流dinic) 2017-02-11 16:28 54人阅读 评论(0) 收藏

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

  6. HDU 1532||POJ1273:Drainage Ditches(最大流)

    pid=1532">Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/327 ...

  7. 【USACO4.2】草地排水Drainage Ditches(最大流)

    题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...

  8. HDU1532 Drainage Ditches 网络流EK算法

    Drainage Ditches Problem Description Every time it rains on Farmer John's fields, a pond forms over ...

  9. poj 1273 (nyoj 323) Drainage Ditches : 最大流

    点击打开链接 Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 49648   Accepte ...

随机推荐

  1. python3 练手实例7 斐波那契数列

    '''a,b=0,1 x=int(input('请指定需要多少项:')) while x>0: print(b) a,b=b,a+b x-=1''' #递归 def fibo(n): if n& ...

  2. content+animation实现loading效果

    <dot></dot> dot { display: inline-block; height: 1em; line-height: 1; vertical-align: -. ...

  3. 小程序通过 url 向内嵌 H5 传参注意事项

    当在小程序中通过 url 向 <web-view> 内嵌的 H5 传参时,当包含特殊字符时需要进行编码处理(不然 <web-view> 中是拿不到值的,小程序竟然没有错误提示. ...

  4. Selenium中三种等待的使用方式---规避网络延迟、代码不稳定问题

    在UI自动化测试中,必然会遇到环境不稳定,网络慢的情况,这时如果你不做任何处理的话,代码会由于没有找到元素,而报错.这时我们就要用到wait(等待),而在Selenium中,我们可以用到一共三种等待, ...

  5. 初识正则表达式matcher.group

    matcher.group中group是匹配()的,group(0)指的是整个串,group(1) 指的是第一个括号里的内容,group(2)指的第二个括号里的内容,以此类推. 例如: str = & ...

  6. P5304 [GXOI/GZOI2019]旅行者

    题目地址:P5304 [GXOI/GZOI2019]旅行者 这里是官方题解 一个图 \(n\) 点 \(m\) 条边,里面有 \(k\) 个特殊点,问这 \(k\) 个点之间两两最短路的最小值是多少? ...

  7. 医学图像数据(三)——TCIA部分数据下载方式

    前为止,本人还没有找到不需要账号的就可以部分下载的方式,因此这里讲的是需要注册账号下载部分数据的方法. 注意:下载部分数据需要注册账号 注册账号网址:https://public.cancerimag ...

  8. 【转】Python函数默认参数陷阱

    [转]Python函数默认参数陷阱 阅读目录 可变对象与不可变对象 函数默认参数陷阱 默认参数原理 避免 修饰器方法 扩展 参考 请看如下一段程序: def extend_list(v, li=[]) ...

  9. 变分自编码器(Variational Autoencoder, VAE)通俗教程

    原文地址:http://www.dengfanxin.cn/?p=334 1. 神秘变量与数据集 现在有一个数据集DX(dataset, 也可以叫datapoints),每个数据也称为数据点.我们假定 ...

  10. CodeForces 671C - Ultimate Weirdness of an Array

    题意: 给以一个定义, F(l, r) 的值表示序列 A[1:n]的子序列 A[1....(l-1),(r+1)...n] 之中 任意两个数的最大公约数的最大值. 求 Sum=∑i=1N∑j=1N(F ...