算法

无源汇上下界可行流

先强制流过l的流量

从s到每个正权点连流量为l的流量

从每个负权点向t连-l的流量

如果容量为0,则不连边

有源汇上下界最大流

去掉下界

先求出可行流

再求S到T的最大流

有源汇上下界最小流

直接应用

poj1149

我的思路

建一个点S,到每个顾客,连INF的边,每个顾客

正解

1.用分层图,建n*m个点

2.直接从S向每个人连边,记录下每个猪圈打开的人的先后顺寻,先来的人向后来的人连边

BZOJ2406

Solution

路径覆盖模型

路径覆盖无交集

链覆盖可以有交集

起点,终点的度数都为1

最小化$n-\sum{d}$=最大化$\sum{d}$d为入度

把原图的点都进行拆点

路径覆盖:

若i,j有边,则从i到j'连边

所有边的边权均为1

链覆盖:

用floyd求传递闭包

从一个点向它能到达的点都连边

用最小流解决

链覆盖把每个点的上限改为INF

魔术球问题

Solution

CTSC2006

最小链覆盖

Dilworth定理

例如<=号

自反性:x<=x

反对称性:x<=y , y<=x —>x==y

传递性:x<=y,y<=z—>x<=z

(<,>不满足偏序关系,不满足第二条性质)

(DAG满足偏序关系,有向图不满足)

反链:两点之间不能相互到达

定理:

TJOI2016XX数学

暴力

拆成n*m个点,每个点的权值下界为给定的权值,上界为INF

优化

对所有点选一条点权和最大的

从左下到右上DP

时间分层

网络流24题星际XXXX

当最大流为k的时候结束

[HNOI2007]紧急疏散

回路限制

POI2010

solution

给每条边定向&&判断是否连通

每条边定向后会使一个点的入度加1,会使一个点的入度减1

先随便定向并保留一次反向机会

可以把每次反向看成一条权值为2的增广路

把点权预先除以二,验证图是否能满流

BZOJ4215

对一个网格进行黑白染色,搞成二分图

用流量为2的边去限制度数为2

如果图满流,那么就存在所有蛇都构成环的方案

找方案的时候看哪些边满流了

如果蛇不构成环,

对于边界上的点,设置其权值为[1,2],对于非边界上的点,其权值为[2,2]

求最大流

最大权闭合子图

模型

所有与S相连的点视为不选择

所有与T相连的点视为选择

有环的情况可以不缩点,(缩点也可以)

TJOI2015 线性代数

Bij*Ai*Aj

Ci*Ai

COdefoeceXXX

若不考虑限制条件

限制条件

从S向新加的点连Wi边

从新加的点向中间的三个点连INF的边

CEOI?

转化为最小割

BZOJ3774

平面图对偶图

狼抓兔子

NOI2010海拔

相当于S和T之前求最小割

距离限制

HNOI拍照

变形

CTSC2009

根据曼哈顿距离的性质

分别最优化横纵坐标

Hall定理

k-完备匹配

首先,贪心的找最大匹配然后删去是显然不对的

证明

想要证明k-正则二分图,只需证明k-1是否存在

假设不存在

左侧的m*k条边若分给右侧<m条边,则有一条边的度数不为1

做法

若原图不存在k-正则二分图则无解

POI2009 Lyz

tag

【CERC2016】Bipartite Blanket

solution

证明

时间复杂度

$2^n*n+2^n*log n$

Day5网络流的更多相关文章

  1. plain framework 1 网络流 缓存数据详解

    网络流是什么?为什么网络流中需要存在缓存数据?为什么PF中要采用缓存网络数据的机制?带着这几个疑问,让我们好好详细的了解一下在网络数据交互中我们容易忽视以及薄弱的一块.该部分为PF现有的网络流模型,但 ...

  2. 网络流模板 NetworkFlow

    身边的小伙伴们都在愉快地刷网络流,我也来写一发模板好了. Network Flow - Maximum Flow Time Limit : 1 sec, Memory Limit : 65536 KB ...

  3. COGS732. [网络流24题] 试题库

    «问题描述:假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性.现要从题库中抽取m 道题组成试卷.并要求试卷包含指定类型的试题.试设计一个满足要求的组卷算法.«编程任务: ...

  4. ACM/ICPC 之 有流量上下界的网络流-Dinic(可做模板)(POJ2396)

    //有流量上下界的网络流 //Time:47Ms Memory:1788K #include<iostream> #include<cstring> #include<c ...

  5. day5

    作业 作业需求: 模拟实现一个ATM + 购物商城程序 额度 15000或自定义 实现购物商城,买东西加入 购物车,调用信用卡接口结账 可以提现,手续费5% 每月22号出账单,每月10号为还款日,过期 ...

  6. BZOJ 3144 [Hnoi2013]切糕 ——网络流

    [题目分析] 网络流好题! 从割的方面来考虑问题往往会得到简化. 当割掉i,j,k时,必定附近的要割在k-D到k+D上. 所以只需要建两条inf的边来强制,如果割不掉强制范围内的时候,原来的边一定会换 ...

  7. bzoj3572又TM是网络流

    = =我承认我写网络流写疯了 = =我承认前面几篇博文都是扯淡,我写的是垃圾dinic(根本不叫dinic) = =我承认这道题我调了半天 = =我承认我这道题一开始是T的,后来换上真正的dinic才 ...

  8. hdu3549还是网络流

    最后一次训练模板(比较熟练了) 接下来训练网络流的建图 #include <cstdio> #define INF 2147483647 int n,m,ans,x,y,z,M,h,t,T ...

  9. 二分图&网络流&最小割等问题的总结

    二分图基础: 最大匹配:匈牙利算法 最小点覆盖=最大匹配 最小边覆盖=总节点数-最大匹配 最大独立集=点数-最大匹配 网络流: 技巧: 1.拆点为边,即一个点有限制,可将其转化为边 BZOJ1066, ...

随机推荐

  1. PostgreSQL Replication之第四章 设置异步复制(7)

    4.7 冲突管理 在PostgreSQL中,流复制数据仅在一个方向流动.XLOG由master提供给几个slave,这些slave消耗事务日志并为您提供一个较好的数据备份.您可能想知道这怎么会导致冲突 ...

  2. linq replace with single call to FirstOrDefault 解决使用resharper产生的警告

    使用resharper时对linq使用的FirstOrDefault 一直产生一个警告, 解决办法: 参考The Linq FirstOrDefault() Method and Null Resul ...

  3. <Sicily>Prime Palindromes

    一.题目描述 The number 151 is a prime palindrome because it is both a prime number and a palindrome (it i ...

  4. 位运算与bitset

    &运算  将两个数转化为二进制后,对应的位置上相同即取,通常取1,所以&通常情况下可以用来枚举子集 设x为表示集合的整数,那么这个整数有如下性质: x的子集整数y在数值上不会比x大.因 ...

  5. NodeJS学习笔记 (28)流操作-stream(ok)

    模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout.http.clientRequest. 对于大部分的nodejs开发者来说,平常并不会直接用到str ...

  6. 运行npm start vue.js项目 出现 npm ERR! missing script: start 错误

    npm ERR! missing script: start 错误 有可能缺少依赖包,运行nmp install安装依赖(一般都依赖很多包,过程有点慢),安装完后发现多一个 node_modules文 ...

  7. HDU-4310 Hero 贪心问题

    题目链接:https://cn.vjudge.net/problem/HDU-4310 题意 打dota,队友太菜,局势变成1vN.还好你开了挂,hp无限大(攻击却只有一点每秒-_-). 但是你并不想 ...

  8. easyui_datagrid使用

    easyui的datagrid显示数据的方式(使用了jQuery) 第一步 创建显示的格式,方法有两种: 第一种:在HTML标签中创建,类似如下的形式,参数可以在标签中设置,也可以在脚本中 这种方式在 ...

  9. screen---管理会话

    Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换.GNU Screen可以看作是窗口管理器的命令行界面版本.它提 ...

  10. [BZOJ4826][HNOI2017]影魔 可持久化线段树

    链接 题意:给你 \(1\) 到 \(n\) 的排列 \(k_1,k_2,\dots,k_n\) ,对 \(i,j (i<j)\)来说,若不存在 \(k_s (i<s<j)\) 大于 ...