网络流 1

最大流

不想讲挺多关于板子的东西
还是,会个Dinic就可以开始做题了
Dinic板子练手
常见的套路就是拆点之类的东西
还有一些是二分图之类的东西,二分图是比较好看出来的
讲个拆点的再讲个二分图先

可以用网络流的数据范围都不大,
差不多\(n,m=100\)

拆点

应该都知道最大流,流的属性体现在边上
但是有的限制是关于点的限制
这个时候我们把点的限制转换成边的限制

先讲个题
酒店之王
首先一个思路就是:
房和菜连边流量\(1\)
菜和\(T\)连边流量\(1\)
房和\(S\)连边流量\(1\)

于是您Wrong Answer了......
原因就是,一个人会算多遍
这不简单?连个中间点就结束了
可是网络流管边啊......
所以我们对中间点拆点,中间加一条流量为\(1\)的边即可

黑白染色转二分图

网格图神器
有些操作比较骚,
这里边有的点限制你没看出来是什么东西
然后你就考虑在网格图上黑白染色
看看能不能搞出一种染色方式使得两个操作对象颜色不同
然后这样就可以把对象当点,操作当边转成二分图搞

二分图

二分图最小点覆盖的点数,等于二分图最大匹配的边数
二分图最大独立集的点数,等于点总数减掉最小点覆盖

最小割

最小割等于最大流

先记住这一句话

流量为inf的边

事实上由于最小割的最小性质,
我们加的这个流量为\(\infty\)的边显然不会出现在最小割里对吧
所以我们连的流量为\(\infty\)的边事实上表示原图上这条边不被割断
所以这个也就有一个防止割断的意思

最大权闭合子图

这个东西水经验还是比较多的

费用流

posted @ 2022-11-20 10:25  2K22  阅读(33)  评论(0)    收藏  举报