https://www.luogu.org/problemnew/show/P3376
板子题

#include <queue>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxN=1e4+5;
const int maxM=1e5+5;
const int INF=(1<<25);
int N,M,S,T;
int dis[maxN];
int head[maxN],tot;
struct graph
{int to,w,next;
} path[maxM<<1];
void addedge(int u,int v,int w)
{path[tot].to=v;path[tot].w=w;path[tot].next=head[u];head[u]=tot++;
}
bool bfs()
{memset(dis,-1,sizeof(dis));dis[S]=0;queue<int>que;que.push(S);while(!que.empty()){int u=que.front();que.pop();for(int i=head[u]; i+1; i=path[i].next){int v=path[i].to;if(dis[v]!=-1||path[i].w==0)continue;dis[v]=dis[u]+1;que.push(v);}}return dis[T]!=-1;
}
int dfs(int u,int flow)       //从S到u的最大流是flow,dfs返回从u到T的最大流
{if(u==T)return flow;int remain=flow;for(int i=head[u]; i+1; i=path[i].next){int v=path[i].to;if(dis[v]!=dis[u]+1||path[i].w==0)continue;int d=dfs(v,min(remain,path[i].w));path[i].w-=d;path[i^1].w+=d;remain-=d;if(!remain)break;}return flow-remain;
}
int dinic()
{int ans=0;while(bfs())ans+=dfs(S,INF);return ans;
}
int main()
{while(~scanf("%d%d%d%d",&N,&M,&S,&T)){memset(head,-1,sizeof(head));tot=0;int u,v,w;while(M--){scanf("%d%d%d",&u,&v,&w);addedge(u,v,w);addedge(v,u,0);}printf("%d\n",dinic());}return 0;
}

P3376 dinic相关推荐

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

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

  2. Dinic最大流 || Luogu P3376 【模板】网络最大流

    题面:[模板]网络最大流 代码: 1 #include<cstring> 2 #include<cstdio> 3 #include<iostream> 4 #de ...

  3. 【网络流】解题报告:luogu P3376 【模板】网络最大流

    题目链接: P3376 [模板]网络最大流 Dinic Dinic算法是网络流最大流的优化算法之一,每一步对原图进行分层,然后用DFS求增广路.时间复杂度是O(n^2*m),Dinic算法最多被分为n ...

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

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

  5. 模板:网络流(Dinic算法)

    文章目录 1.网络最大流 题目描述 解析 反悔边 分层(避免环流) 时间优化 代码 2.费用流 描述 解析 代码 1.网络最大流 洛谷P3376 题目描述 给出一个网络图,以及其源点和汇点,求出其网络 ...

  6. 经典网络流题目模板(P3376 + P2756 + P3381 : 最大流 + 二分图匹配 + 最小费用最大流)...

    题目来源 P3376 [模板]网络最大流 P2756 飞行员配对方案问题 P3381 [模板]最小费用最大流 最大流 最大流问题是网络流的经典类型之一,用处广泛,个人认为网络流问题最具特点的操作就是建 ...

  7. 【网络流】——搞搞dinic

    只是搞一搞而已. https://www.luogu.org/problem/P3376网络流最大流板子. 程序大部分参考自A_Comme_Amour大大的题解. Dinic: 1.从s跑一遍bfs来 ...

  8. Dinic算法(C语言)

    网络最大流---Dinic 前言 介绍 网络流 剩余网络 最大流最小割定理 Dinic算法步骤 代码 前言 新手第一次写博客,刚好这几天学习了一个新算法Dinic算法,就拿它练手吧,多多包涵. 介绍 ...

  9. 网络流重制版:最大流Dinic,以及EK、Dinic时间复杂度的证明(含坑)

    文章目录 前言 关于最大流 神奇的术语 EK算法 Dinic 时间复杂度 EK Dinic 细节与一些神奇的性质 反向弧的作用以及代码边中的c 合法的f对应流 st有入边,ed有出边 双向边的两种处理 ...

  10. 对于网络流算法中Dinic与ISAP的效率比较

    luogu 模板题 P3376 网络最大流 作者自测,可能因为代码习惯等原因常数不同,个人的整理 对此题,目前使用两种算法,均ACACAC DinicDinicDinic 970ms970ms970m ...

最新文章

  1. python爬虫项目实例-Python爬虫实例项目
  2. 如何实现linux+windows双系统启动
  3. 对没有标记为安全的activex控件进行初始化和脚本运行_新的C++安全编码规则出炉...
  4. JavaScript实现isPowerOfTwo算法(附完整源码)
  5. FDS (Flex Data Services)
  6. Redis内存分析工具
  7. .NET Core中文分词组件jieba.NET Core
  8. java 8 lambda_异常作弊– Java 8 Lambdas
  9. Python如何忽略warning的输出
  10. 【Python】shutil内置模块复制和重命名文件
  11. 工具库用久了,你还会原生操作 Cookie 吗?
  12. 1092 : 素数表(函数专题)
  13. 基于AVX2的并行选择排序算法(C#实现)
  14. buck dcm占空比计算_Buck知识大总结:模态分析,电感计算,EMI分析等(转)
  15. 计算机辅助翻译专业实训报告,计算机辅助翻译实训报告格式.docx
  16. java 提高随机数效率_抢拍神器的关键:优化提升Java线程局部随机数ThreadLocalRandom高并发技巧 - alidg...
  17. vue中的prop验证
  18. 使用上古神器帮姐姐完成寸照自动排版/打印
  19. 从知识工程到知识图谱全面回顾
  20. python点击按钮打开游戏_Python如何入门?直接按这个方式玩炸弹超人小游戏,就能掌握编程...

热门文章

  1. aamp;m大学计算机科学,斑马博士捷报|德克萨斯AM大学 (TAMU) MSc Computer Science录取!...
  2. Nginx反向代理处理跨域问题
  3. 如何成为一个具有批判性思维的人?
  4. 计算机中集线器hub功能,usb集线器是什么东东_usb集线器功能介绍
  5. windows删除文件时需要管理员权限的方法
  6. 系统之家装机大师如何制作U盘启动盘?
  7. SolrCloud 初体验
  8. 洋桃开发板笔记(五 ) Flash闪存的使用
  9. 台式计算机时间不能同步,电脑时间同步不了怎么办
  10. freertos demo2: LED blinky queue 发送消息