网络流最大流(最小割)Dinic模板……

1 const int INF=99999999;
2 const int Maxn=;
3 const int Maxm=;
4 inline int Min(int p,int q){return p<q?p:q;}
5 int n,m,h[Maxn+5],to[Maxm*2+5],cap[Maxm*2+5],nxt[Maxm*2+5],tot=1,Sum=0,que[Maxn+5],l,r,lv[Maxn+5],iter[Maxn+5];
6 inline void ins(int x,int y,int c){nxt[++tot]=h[x];to[tot]=y;cap[tot]=c;h[x]=tot;}
7 inline void INS(int x,int y,int c){ins(x,y,c);ins(y,x,0);}

 1 inline bool lvl() {
 2     memset(lv,0,sizeof lv);
 3     int u;
 4     l=r=1; que[1]=0; lv[0]=1;
 5     while(l<=r) {
 6         u=que[l++];
 7         eF(i,u) if(!lv[to[i]]&&cap[i]) {
 8             lv[to[i]]=lv[u]+1;
 9             que[++r]=to[i];
10         }
11     }
12     return lv[T];
13 }
14 int flow(int u,int f) {
15     if(u==T) return f;
16     int d,sum=0;
17     for(int&i=iter[u];i;i=nxt[i]) if(lv[to[i]]==lv[u]+1&&cap[i]) {
18         d=flow(to[i],Min(f,cap[i]));
19         sum+=d; f-=d;
20         cap[i]-=d; cap[i^1]+=d;
21         if(!f) return sum;
22     }
23     return sum;
24 }
25 int Dinic() {
26     int ans=0;
27     while(lvl()) {
28         for(int i=0;i<=T;++i) iter[i]=h[i];
29         ans+=flow(0,INF);
30     }
31     return ans;
32 }
33 int main() {
34     init();
35     printf("%d",Sum-Dinic());
36 }

没了……

init自己打 :(

转载于:https://www.cnblogs.com/PinkRabbit/p/7115407.html

【算法学习】网络流模板……相关推荐

  1. 算法学习笔记:网络流#4——ISAP 求解最大流

    算法学习笔记:网络流#4--ISAP 求解最大流 1. 前言 2. 模板 2.1 详解 2.2 正确性证明 2.3 代码 3. 算法对比 3.1 一般数据下的对比 3.2 特殊数据下的对比 4. 总结 ...

  2. 基础算法学习大纲(附加yxc大佬算法模板)

    基础算法学习大纲总结 学习算法路线 1.基础算法 模板 1.排序 2.二分 3.高精度 4.前缀和与差分 5.双指针算法 6.位运算 7.离散化 8.区间合并 2.数据结构 模板 1.链表与邻接链表( ...

  3. 网络流算法学习笔记——最大流问题基本概念和Ford-Fulkerson方法(标号法C++实现)

    屈婉玲<算法设计与分析>第2版第7章网络流算法学习笔记. 基本概念 最大流问题,相当于有从s到t的供水系统,每段路径都有限定流量,除了s.t两地外,每个中间点都不能滞留,从s流入多少,就从 ...

  4. Python最优化算法学习笔记(Gurobi)

    微信公众号:数学建模与人工智能 github地址:https://github.com/QInzhengk/Math-Model-and-Machine-Learning Python最优化算法学习笔 ...

  5. 原创 | 初学者友好!最全算法学习资源汇总(附链接)

    在计算机发展飞速的今天,也许有人会问,"今天计算机这么快,算法还重要吗?"其实永远不会有太快的计算机,因为我们总会想出新的应用.虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快 ...

  6. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  7. 算法学习:后缀自动机

    [前置知识] AC自动机(没有什么关联,但是看懂了会对后缀自动机有不同的理解) [解决问题] 各种子串的问题 [算法学习] 学习后缀自动机的过程中,看到了许多相关性质和证明,但是奈何才疏学浅(lan) ...

  8. 算法学习:最小圆覆盖

    [参考博客] https://www.cnblogs.com/bztMinamoto/p/10698920.html [定义] [圆]一个圆心和他的半径,就能够确定这个半径 [解决问题] 字面意思 给 ...

  9. 算法学习:强连通分量 --tarjan

    [定义] [强连通分量] 在一个子图中,任意点能够直接或者间接到达这个子图中的任意点,这个子图被称为强连通分量 [解决问题] 求图的强连通分量 同时能够起到 ...................缩点 ...

  10. 算法学习:后缀数组(SA)

    [参考博客] https://xminh.github.io/2018/02/27/%E5%90%8E%E7%BC%80%E6%95%B0%E7%BB%84-%E6%9C%80%E8%AF%A6%E7 ...

最新文章

  1. linux 压缩 解压缩 详解
  2. nginx---ngix虚拟主机配置实例
  3. 使用webflux提升数据导出效率
  4. RocketMQ源码分析之RocketMQ事务消息实现原理上篇(二阶段提交)
  5. JVM解释器和编译器
  6. Log4j的快速入门
  7. 程序员们请别做下一个小贝
  8. 怎样用CDN防篡改、抗攻击、控内容?一份CDN安全指南请查收
  9. pygame-KidsCanCode系列jumpy-part15-PowerUp加速器
  10. 写给自己的23条好习惯
  11. 解决ifconfig没有网卡问题
  12. c++优先队列小节(常常弄混)
  13. 关联分析(二)--FP-Growth算法
  14. php 用header()下载文件在firefox下没有后缀名
  15. 经纬度转换器_FME应用小实例:线面经纬度集合快速转几何图形
  16. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)
  17. AI大军已经兵临城下,我们离失业还有多远?
  18. 脱离低级趣味- Python ‘\r‘, ‘\n‘, ‘\r\n‘ 的彻底理解
  19. 有哪些好用的国产婴儿润肤霜?纽强怎么样?
  20. Unity Ugui 详解 Content Size Fitter 和 Horizontal Layout Group 的使用

热门文章

  1. 读《系统虚拟化-原理与实现》-第一章
  2. 关于SDL SDL_CreateWindowFrom和SDL_DestroyWindow第二次后无法将视频显示出来。
  3. 数据库:MySQL、HBase、ElasticSearch三者对比
  4. 一文详解CSS常见的五大布局
  5. 几个故事告诉你,火热的区块链究竟是什么?
  6. python进阶(第三章1) 字典
  7. python 栈【测试题】
  8. java中main函数的args参数
  9. 印发 指南 通知_通知设计的综合指南
  10. 安装jenkins时出现 No such plugin: cloudbees-folder的解决办法