1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define MP make_pair
  6. #define PB push_back
  7. #define ls first
  8. #define rs second
  9. typedef long long LL;
  10. typedef pair<int,int> PII;
  11. const double eps=1e-;
  12. const double pi=acos(-1.0);
  13. const int K=1e5+;
  14. const int mod=1e9+;
  15.  
  16. vector<pair<int,int>>mp[K];
  17. int n,m,cnt,flow[K*],deep[K],cur[K];
  18.  
  19. int bfs(int s,int t)
  20. {
  21. queue<int>q;
  22. memset(deep,,sizeof deep);
  23. q.push(s),deep[s]=;
  24. while(!q.empty())
  25. {
  26. int u=q.front();q.pop();
  27. for(auto &it:mp[u])
  28. if(!deep[it.ls]&&flow[it.rs])
  29. {
  30. deep[it.ls]=deep[u]+;
  31. q.push(it.ls);
  32. if(it.ls==t)
  33. return ;
  34. }
  35. }
  36. return ;
  37. }
  38. int dfs(int x,int d,int t)
  39. {
  40. if(x==t) return d;
  41. for(int i=cur[x];i<mp[x].size();cur[x]=++i)
  42. {
  43. int u=mp[x][i].ls,v=mp[x][i].rs;
  44. if(deep[u]==deep[x]+&&flow[v])
  45. {
  46. int td=min(d,dfs(u,min(d,flow[v]),t));
  47. if(!td) continue;
  48. flow[v]-=td;
  49. flow[v^]+=td;
  50. return td;
  51. }
  52. }
  53. return ;
  54. }
  55. int dinic(int s,int t)
  56. {
  57. int ret=,d;
  58. while(bfs(s,t))
  59. {
  60. memset(cur,,sizeof cur);
  61. while(d=dfs(s,mod,t)) ret+=d;
  62. }
  63. return ret;
  64. }
  65. int main(void)
  66. {
  67. while(~scanf("%d%d",&m,&n))
  68. {
  69. cnt=;
  70. memset(mp,,sizeof mp);
  71. for(int i=,u,v,w;i<m;i++)
  72. {
  73. scanf("%d%d%d",&u,&v,&w);
  74. flow[cnt]=w,flow[cnt+]=;
  75. mp[u].PB(MP(v,cnt++));
  76. mp[v].PB(MP(u,cnt++));
  77. }
  78. printf("%d\n",dinic(,n));
  79. }
  80. return ;
  81. }

网络流-最大流 Dinic模板的更多相关文章

  1. 网络流--最大流dinic模板

    标准的大白书式模板,除了变量名并不一样……在主函数中只需要用到 init 函数.add 函数以及 mf 函数 #include<stdio.h> //差不多要加这么些头文件 #includ ...

  2. 网络流--最大流--Dinic模板矩阵版(当前弧优化+非当前弧优化)

    //非当前弧优化版 #include <iostream> #include <cstdio> #include <math.h> #include <cst ...

  3. [讲解]网络流最大流dinic算法

    网络流最大流算法dinic ps:本文章不适合萌新,我写这个主要是为了复习一些细节,概念介绍比较模糊,建议多刷题去理解 例题:codevs草地排水,方格取数 [抒情一下] 虽然老师说这个多半不考,但是 ...

  4. 【模板】网络流-最大流 Dinic

    洛谷 3376 #include<cstdio> #include<algorithm> #include<cstring> #define N 10010 #de ...

  5. 网络流最大流——dinic算法

    前言 网络流问题是一个很深奥的问题,对应也有许多很优秀的算法.但是本文只会讲述dinic算法 最近写了好多网络流的题目,想想看还是写一篇来总结一下网络流和dinic算法以免以后自己忘了... 网络流问 ...

  6. Power Network(网络流最大流 & dinic算法 + 优化)

    Power Network Time Limit: 2000MS   Memory Limit: 32768K Total Submissions: 24019   Accepted: 12540 D ...

  7. POJ训练计划1459_Power Network(网络流最大流/Dinic)

    解题报告 这题建模实在是好建.,,好贱.., 给前向星给跪了,纯dinic的前向星居然TLE,sad.,,回头看看优化,.. 矩阵跑过了.2A,sad,,, /******************** ...

  8. 最大流dinic模板

    循环版,点的编号从0开始: ; ; const int INF = 0x3f3f3f3f; struct Edge { int to, next, cap, flow; }edge[MAXM]; in ...

  9. (网络流 最大流 Dinic || SAP)Control -- hdu --4289

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4289 http://acm.hust.edu.cn/vjudge/contest/view.action ...

随机推荐

  1. C# 未能加载文件或程序集“xxx”或它的某一个依赖项。参数错误。(异常来自 HRESULT:0x80070057 (E_INVALIDARG))

    错误信息: 因为电脑突然蓝屏,然后重启,再运行项目,报了这个错. 解决方案: 环境是:VS2012+Win7 通过网上查找, 4.0 删除 C:\Windows\Microsoft.NET\Frame ...

  2. 【CF840C】On the Bench DP

    [CF840C]On the Bench 题意:给你一个长度为n的数组{ai},定义一个1到n的排列是合法的,当且仅当对于$1\le i <n$,$a_i\times a_{i+1}$不是完全平 ...

  3. 【BZOJ3691】游行 费用流

    [BZOJ3691]游行 Description 每年春季,在某岛屿上都会举行游行活动.在这个岛屿上有N个城市,M条连接着城市的有向道路.你要安排英雄们的巡游.英雄从城市si出发,经过若干个城市,到城 ...

  4. python nose测试框架全面介绍四

    四.内部插件介绍 1.Attrib 标记,用于筛选用例 在很多时候,用例可以分不同的等级来运行,在nose中很增加了这个功能,使用attrib将用例进行划分 有两种方式: ef test_big_do ...

  5. 兵器簿之cocoaPods的安装和使用

    以前添加第三方库的时候总是直接去Github下载然后引入,但是如果这些第三方库发生了更新,我们还需要手动去更新项目,所以现在引入之前一直想弄都一直没有弄的cocoaPods,现在演示一把过程 其实非常 ...

  6. msql_createdb: 建立一个新的 mSQL 数据库。

    mcrypt_ecb: 使用 ECB 将资料加/解密. mcrypt_get_block_size: 取得编码方式的区块大小. mcrypt_get_cipher_name: 取得编码方式的名称. m ...

  7. HDU-4539郑厂长系列故事——排兵布阵(状态压缩,动态规划)

    郑厂长系列故事--排兵布阵 Time Limit : 10000/5000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total ...

  8. CCCC 月饼

    https://www.patest.cn/contests/gplt/L2-003 题解:按平均值贪心. 坑:有一个样例卡住了,是因为 while (i<=n&&x - bs[ ...

  9. Python开发【笔记】:获取mp3文件获取信息

    import eyed3 def main(): mp3 = '8200031001_13429822982_1_00163e086216990b11e82403f00d3d9a.mp3' xx = ...

  10. CSS表单设计

    今天我们开始学习<十天学会web标准(div+css)>的css表单设计,包含以下内容和知识点: 改变文本框和文本域样式 用图片美化按钮 改变下拉列表样式 用label标签提升用户体验 一 ...