题面:【模板】网络最大流

代码:

 1 #include<cstring>
 2 #include<cstdio>
 3 #include<iostream>
 4 #define min(a,b) ((a)<(b)?(a):(b))
 5 using namespace std;
 6 inline int rd(){
 7     int x=0,f=1;char c=getchar();
 8     while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}
 9     while(c>='0'&&c<='9'){x=x*10+c-'0'; c=getchar();}
10     return f*x;
11 }
12 const int maxn=(1e4)+50,maxm=(1e5)+50;
13 int num_edge=-1,edge_head[maxn],N,M,S,T,w,u,v,Q[maxn<<1],f1,f2,Dep[maxn],Cur[maxn];
14 struct Edge{int to,nx,dis;}edge[maxm<<1];
15 inline void Add_edge(int from,int to,int dis){
16     edge[++num_edge].nx=edge_head[from];
17     edge[num_edge].to=to;
18     edge[num_edge].dis=dis;
19     edge_head[from]=num_edge;
20     return;
21 }
22 inline bool Bfs(){
23     memset(Dep,0,sizeof(Dep));
24     Dep[S]=1;
25     f1=f2=1;
26     Q[f2++]=S;
27     while(f1<f2){
28         int x=Q[f1++];
29         for(int i=edge_head[x];i!=-1;i=edge[i].nx){
30             int y=edge[i].to;
31             if(edge[i].dis&&Dep[y]==0){
32                 Dep[y]=Dep[x]+1;
33                 Q[f2++]=y;
34             }
35         }
36     }
37     if(Dep[T])return 1;
38     return 0;
39 }
40 inline int Dfs(int x,int fw){
41     if(x==T)return fw;
42     for(int &i=Cur[x];i!=-1;i=edge[i].nx){
43         int y=edge[i].to;
44         if(Dep[y]==Dep[x]+1&&edge[i].dis){
45             int p=Dfs(y,min(fw,edge[i].dis));
46             if(p>0){
47                 edge[i].dis-=p;
48                 edge[i^1].dis+=p;
49                 return p;
50             }
51         }
52     }
53     return 0;
54 }
55 inline int Dinic(){
56     int ans=0;
57     while(Bfs()){
58         for(int i=1;i<=N;i++)Cur[i]=edge_head[i];
59         while(int k=Dfs(S,1<<30))ans+=k;
60     }
61     return ans;
62 }
63 int main(){
64     memset(edge_head,-1,sizeof(edge_head));
65     N=rd();M=rd();S=rd();T=rd();
66     for(int i=1;i<=M;i++){
67         u=rd();v=rd();w=rd();
68         Add_edge(u,v,w);
69         Add_edge(v,u,0);
70     }
71     printf("%d\n",Dinic());
72     return 0;
73 }


By:AlenaNuna

转载于:https://www.cnblogs.com/AlenaNuna/p/10957576.html

Dinic最大流 || Luogu P3376 【模板】网络最大流相关推荐

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

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

  2. [Luogu] P3376 模板-网络流-最大流

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

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

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

  4. php使用ffmpeg转录网络直播流,使用FFmpeg转录网络直播流(示例代码)

    爱奇艺万能播放器的最新版本增加了一个播放网络流的功能.不过,入口藏在播放器区域的右键菜单里,不太好找: 找来一个直播流URL,比如东森新闻 http://60.199.188.151/HLS/WG_E ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. CSS text-transform 属性
  2. 50个photoshop网页设计教程-整体布局篇
  3. boost::hana::sort用法的测试程序
  4. mysql 半径,MySQL基于距离半径的搜索和区域搜索POI实践
  5. ES5-拓展 箭头函数的this、this的优先级
  6. svn如何取消某个文件的版本管理_微服务架构如何统一管理工程配置文件
  7. (80)FPGA面试题-请画出序列“1101 “检测状态转移图
  8. matlab中表示拉普拉斯分布_神奇的正态分布
  9. for循环语句例子 python_Python for循环语句一般形式例子
  10. php3.2 之文件上传,多文件上传
  11. 小学计算机集体备课,信息技术集体备课总结
  12. 前端静态页面html珠宝首饰电商平台网站购物商城系统.rar含源码
  13. oracle 0604,Oracle建立配置环境
  14. iOS 关于接入海康视频SDK的步骤
  15. 二维数组定义及初始化
  16. matlab英文词汇,matlab中常见英文词含义
  17. iphone开发 加速计
  18. 金融风控系统设计 - 外汇管理风控系统
  19. 计算机语言排名labview,编程语言排名
  20. 移动支付申请所需材料及流程整理

热门文章

  1. 5大食物千万别挑太艳的
  2. 配置IIS Silverlight运行环境
  3. wget指定目录下载以及其它的使用方式
  4. 百度机器人对战人类最强大脑,赢在了小数点后第二位
  5. 如何让Ubuntu系统支持WebP图片格式
  6. 背景建模与前景检测3(Background Generation And Foreground Detection Phase 3)
  7. Github高级搜索技巧
  8. 关于html的a标签的target=__blank 的安全漏洞问题
  9. Python元组与字典详解
  10. linux下的QQ执行玩法:pidgin-lwqq