不是讲网络流,就是存个板子
另外我的Dinic跑得比EK慢一倍可还行(

附两份比较好的教程,均来自洛谷日报
EK\sf \color{blue}EKEK
Dinic\sf \color{blue}DinicDinic


下面是代码

EK

#include<cstdio>
#include<cstring>
const int N=10010;
int n,m,l,r,t,p1,p2,x,y,c,mn,ans,v[N],last[N],Q[N];
struct node { int v,e; }pre[N];
struct Edge { int y,pre,v; }E[200010];
inline int min(int x,int y) { return (x<y?x:y); }int bfs() {memset(v,0,sizeof v); memset(pre,0,sizeof pre);v[p1]=1; Q[l=r=1]=p1;while (l<=r) {t=Q[l]; ++l;for (int i=last[t]; i; i=E[i].pre)if (!v[y=E[i].y]&&E[i].v) {pre[y]={t,i}; if (y==p2) return 1;v[y]=1; Q[++r]=y;}}return 0;
}
int main() {scanf("%d%d%d%d",&n,&m,&p1,&p2);for (int i=1; i<=m; ++i) {scanf("%d%d%d",&x,&y,&c); E[i<<1]={y,last[x],c}; last[x]=(i<<1);E[i<<1|1]={x,last[y],0}; last[y]=(i<<1|1);}while (bfs()) {mn=19260817;for (int i=p2; i!=p1; i=pre[i].v)mn=min(mn,E[pre[i].e].v);for (int i=p2; i!=p1; i=pre[i].v)E[pre[i].e].v-=mn,E[pre[i].e^1].v+=mn;ans+=mn;}printf("%d\n",ans);return 0;
}

Dinic

#include<cstdio>
#include<cstring>
const int N=10010,inf=0x3f3f3f3f;
int n,m,t1,t2,s,ans,l,r,x,y,c,last[N],v[N],dep[N],Q[N];
struct node { int y,pre,v; }E[200010];
inline int min(int x,int y) { return (x<y?x:y); } int bfs() {memset(dep,0x3f,sizeof dep); int t,y;for (Q[l=r=1]=t1,dep[t1]=0; l<=r; ++l) {v[t=Q[l]]=0;for (int i=last[t]; i; i=E[i].pre)if (E[i].v&&dep[y=E[i].y]>dep[t]+1)dep[y]=dep[t]+1,v[y]||(Q[++r]=y,v[y]=1);}return (dep[t2]!=inf);
}
int dfs(int x,int s) {if (x==t2) return s; int s2,y;for (int i=last[x]; i; i=E[i].pre)if (E[i].v&&dep[y=E[i].y]==dep[x]+1)if (s2=dfs(y,min(E[i].v,s)))return E[i].v-=s2,E[i^1].v+=s2,s2;return 0;
}
int main() {scanf("%d%d%d%d",&n,&m,&t1,&t2);for (int i=1; i<=m; ++i) {scanf("%d%d%d",&x,&y,&c);E[i<<1]={y,last[x],c}; last[x]=(i<<1);E[i<<1|1]={x,last[y],0}; last[y]=(i<<1|1);}while (bfs()) while (s=dfs(t1,inf)) ans+=s;printf("%d\n",ans);return 0;
}

洛谷P3376 网络最大流相关推荐

  1. 洛谷3376 网络最大流

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

  2. sscanf小技巧-洛谷P7911 网络连接

    sscanf小技巧-洛谷P7911 网络连接 序言 本题解来源:本蒟蒻上课摸鱼 (别学我) 最近学了一个挺好用的函数--sscanf(),结合洛谷P7911 网络连接讲一下. (点击查看题目) 推荐几 ...

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

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

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

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

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

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

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

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

  7. 洛谷 - P4014 分配问题(费用流/KM)

    题目链接:点击查看 题目大意:给出n个工人和n个工作,每个人做每一个工作的效率都是不同的,问如何分配能让效率最低/最高 题目分析:最小费用最大流和最大费用最大流的模板题,直接套模板跑答案就行了,没有任 ...

  8. 洛谷 - P4015 运输问题(费用流)

    题目链接:点击查看 题目大意:有n个卖家和m个买家,每个卖家会卖ai个物品,每个买家会买bi个物品,每个卖家向每个卖家卖东西会有一定的代价,问如何匹配才能让代价最小/最大 题目分析:和上一道题大同小异 ...

  9. 洛谷3171 网络吞吐量(网络流)

    t开成n结果cur赋值的时候也只赋值到t令人智熄 [题目分析] 好吧我承认这个错误真的呵呵........ 题目有那~~~~~么长,然后画画图这道题就基本看出正解了,再一看数据范围,n<=500 ...

最新文章

  1. 对比直立车模控制中的互补滤波、Karlman滤波和参考滤波方案
  2. find查找文件的时候排除某个或几个文件或目录
  3. ORACLE数据库,数据量大,转移数据到备份表语句
  4. sqlite3 命令行简易教程
  5. OpenCV在水平线上校准3个摄像机的实例(附完整源代码)
  6. 梯度下降优化方法'原理_优化梯度下降的新方法
  7. LeetCode 11. 盛最多水的容器(双指针)
  8. Teradata天睿公司任命Steve McMillan为总裁兼首席执行官
  9. vue component created没有触发_面试!面试!面试!vue常见面试题。
  10. 15年编程生涯,资深架构师总结的7条经验
  11. 希捷扩展PCIe产品组合 推出两款新闪存加速卡
  12. 没有必要学完oldboy课程再找工作,现在就可以试试
  13. C语言格式化读写文件
  14. Nand Flash驱动程序分析
  15. 怎样让vSAN发挥出高性能、低延迟的威力?
  16. 微博中微服务缓存_微服务实践分享(5)缓存中心
  17. (实验)使用Protel 99se绘制2114存储器芯片(详细)
  18. JSONP解决前端跨域问题
  19. 制造上云 佛山南海携手阿里云建创新中心
  20. 使用html2canvas保存html或者div内容为图片及自定义名称

热门文章

  1. 【个人疑惑】中移动称转发“黄段子”短信功能将被停
  2. 开发者谈微软Windows Phone 8之变
  3. 计算机网络 day7 扫描IP脚本 - 路由器 - ping某网址的过程
  4. ChatGPT将如何影响大学录取和大学申请文书?
  5. 软件测试工程师的定位和职责
  6. STM32 keil仿真点击运行后不能全速运行,点一下运行一下
  7. 常用测量仪器和SCPI协议通信相关的那些事
  8. 【JiyaChieng】(贰)CoreDump —— 崩溃前的自拍
  9. python十大语法_精华-Python十大语法有哪些?
  10. PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)详细教程