最大流

题目传送门

最大流模板题,EK算法居然过了!果然是远小于(不知道为什么题解里的那个人说不会过)。
(还不会最大流的童鞋们请戳这里)
注意第0号边也是有值的,不然1^1的时候就gg了。

废话不多说,上代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct edge{int next;int to;int flow;int v;
};
struct fa{int x;int e;
};
edge a[200005];
fa father[10005];
int h[10005],r,w,k,n,m,s,e,u,v,d;
int remain[10005];
int b[10005];
bool f[10005];
void read(int x,int y,int z){a[k].next=h[x];a[k].to=y;a[k].v=z;h[x]=k;k++;a[k].next=h[y];a[k].to=x;a[k].v=0;h[y]=k;k++;
}
int bfs(){memset(f,false,sizeof(f));r=0; w=1;b[w]=s;f[s]=true;remain[s]=0x7fffffff;while (r<w){int x=b[++r];for (int i=h[x];~i;i=a[i].next){if (!f[a[i].to]&&a[i].v-a[i].flow>0){w++;b[w]=a[i].to;f[a[i].to]=true;father[a[i].to].x=x;father[a[i].to].e=i;remain[a[i].to]=min(remain[x],a[i].v-a[i].flow);if (a[i].to==e) return remain[e];}}}return 0;
}
void change(int x){int now=e;while (now!=s){int ed=father[now].e;a[ed].flow+=x;a[ed^1].flow-=x;now=father[now].x;}
}
int maxflow(){int ans=0;while (1){int sum;sum=bfs();if (!sum)break;ans+=sum;change(sum);}return ans;
}
int main(){scanf("%d%d%d%d",&n,&m,&s,&e);memset(h,-1,sizeof(h));for (int i=1;i<=m;i++){scanf("%d%d%d",&u,&v,&d);read(u,v,d);}printf("%d\n",maxflow());return 0;
}

洛谷P3376【模板】网络最大流相关推荐

  1. 【洛谷P3376】网络最大流【网络流】

    分析 网络流算法本身是之前学过的,今天拿出来复习打个板子. 最原始的思路应该是搜索每一条路,每次进行增广的操作,知道不能增广为止.显然,这种思路复杂度比较高. 如何进行优化?就是dinic算法.上面那 ...

  2. 洛谷P1262 间谍网络题解

    洛谷P1262 间谍网络题解 题目大意 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果 A 间谍手中掌握着关于 B 间谍的犯罪证据,则称 A 可以揭发 B.有些间谍收受贿赂,只要 ...

  3. 洛谷P3376 【模板】网络最大流

    P3376 [模板]网络最大流 题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点 ...

  4. 洛谷 P3376 【模板】网络最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  5. 【洛谷 - P3376 】【模板】网络最大流

    题干: 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行包 ...

  6. 洛谷P3376 网络最大流

    不是讲网络流,就是存个板子 另外我的Dinic跑得比EK慢一倍可还行( 附两份比较好的教程,均来自洛谷日报 EK\sf \color{blue}EKEK Dinic\sf \color{blue}Di ...

  7. 洛谷P3980 志愿者招募——费用流

    洛谷P3980 [NOI2008]志愿者招募--费用流 题目介绍 题目描述 输入格式 输出格式 测试样例 题解 代码 题目介绍 题目描述 链接: 传送门. 申奥成功后,布布经过不懈努力,终于成为奥组委 ...

  8. 【ybt金牌导航3-2-1】【luogu P3376】网络最大流【Dinic算法】

    网 络 最 大 流 网络最大流 网络最大流 题目链接:ybt金牌导航3-2-1 / luogu P3376 题目 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入 第一行包含四个正整数 ...

  9. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

  10. 洛谷·【模板】点分树 | 震波【including 点分树

    初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...

最新文章

  1. 【组合数学】鸽巢原理 ( 鸽巢原理简单形式 | 鸽巢原理简单形式示例 1、2、3 )
  2. java: command not found_/bin/bash: java: command not found 问题解决
  3. 简述php三元运算符的使用,PHP 三元运算符的使用
  4. 用python画爱心再加一行文字_如何理解python一行代码实现一个爱心字符画?
  5. oracle执行runstats,oracle runstats工具
  6. PAT乙类1014 福尔摩斯的约会 (20 分)
  7. 综合应用WPF/WCF/WF/LINQ之十七:关于简化发布新版本的步骤的问题
  8. java获得map内存_[java]测试static的map的内存
  9. upc组队赛5 Election of Evil【搜索】
  10. leetcode 贪心_leetcode题解(贪心算法)
  11. poj 3080 Blue Jeans【字符串】
  12. 心理学与生活 -人格与动机
  13. 一个程序员的成长之路
  14. Linux系列课程之一Linux的介绍
  15. 内网计算机如何在线查找mac,查询局域网内全部电脑IP和mac地址
  16. 高防虚拟主机怎么选?
  17. jle汇编_汇编学习之路
  18. 微信小程序章节自测--6-7-8-9-有解析
  19. 旋转编码器旋钮程序_让我们使用SwiftUI构建具有旋转手势的复古音频旋钮
  20. laydate设置起始时间,laydate设置开始时间和结束时间

热门文章

  1. HTML caption文字颜色,HTML caption align 属性 - HTML 颜色参考手册 - 自强学堂
  2. 刚体运动学公式_1.力的观点 ⑴.匀变速直线运动中常见的公式: 牛顿第二定律: 运动学公式:.... ⑵.圆周运动的主要公式:...
  3. Mac 忘记管理员名和密码
  4. 如何在eclipse中新建java web项目,并且生成的是WebRoot目录而不是WebContent
  5. 基于javaweb+jsp的学生档案管理系统
  6. G6实现家族族谱关系图
  7. IndexError: Caught IndexError in DataLoader worker process 0.
  8. 动态箭头gif图标_教程|PPT绘制箭头最全攻略,收藏一下
  9. Chrome浏览器设置中文系统语言
  10. 提取win10默认锁屏壁纸