二分图 & 网络流 杂谈

Froggy

2020-10-14 20:36:49

Personal

(网络流这玩意sb毁我青春)(从 url 可以看出来)

由于我这方面太菜了所以稍微复习一下下(但复习完还是很菜)

不要妄想从这里找到任何有用的信息,因为我是瞎 jb写的

二分图

最大匹配

KM 辣鸡,Dinic txdy。\mathcal{O}(m\sqrt{n})

P.S. 不加当前弧优化的 Dinic 的复杂度是错的,是错的,是错的!!

Dinic 解决多重匹配也很方便,复杂度不变。

P.S. 对于一般图来说,如果存在图一个割满足所有边流量都为 1,那么跑 Dinic 的复杂度也是 \mathcal{O}(m\sqrt{n})

最大独立集

最大独立集=总点数-最大匹配

P.S.

一般图最大独立集=补图的最大团

关于输出方案:

残量网络上与 S 连通的左部的点以及与 S 不连通的右部的点。

例题:

最小点覆盖

最小点覆盖=最大匹配

用最小点覆盖求解问题时,限制都是形如:两个东西最多只能选其中一个。

例题:

可行边与必须边

先跑出来个最大匹配。

$(u,v)$ 是必须边当且仅当:$(u,v)$ 是当前的匹配边 **且** $u$ 和 $v$ 在残量网络上**不是**同一个 SCC。 在同一个 SCC 就说明可以在把它所在的一个偶环的边都反一下,显然这样做最大流不变。 例题: - [[HAOI2017]新型城市化](https://www.luogu.com.cn/problem/P3731) --- # 最小割 >最大流=最小割 ## 通常解决的问题模型——集合划分 (又叫“文理分科”模型) 代价形如这样:第 $i$ 个物品在 $A$ 集合的代价为 $a_i$,在 $B$ 集合的代价为 $b_i$;两个物品 $(i_k,j_k)$ 如果 $i_k$ 和 $j_k$ 不在同一集合会产生 $w_k$ 的代价。 那么建立原点 $S$ 表示集合 $A$,建立原点 $T$ 表示集合 $B$。 对于每个物品 $i$,$S$ 向 $i$ 连一条流量为 $b_i$ 的边,割掉就表示 $i$ 在 $B$;同理 $i$ 向 $T$ 连一条流量为 $a_i$ 的边。 然后对于每对 $(i_k,j_k)$,$i_k$ 向 $j_k$ 并且 $j_k$ 也向 $i_k$ 连,容量都为 $w_k$。 还有些特殊的,可以参考例题。 例题: - [P4313 文理分科](https://www.luogu.com.cn/problem/P4313) - [AGC038 F - Two Permutations](https://atcoder.jp/contests/agc038/tasks/agc038_f) -> [题解](https://www.luogu.com.cn/blog/froggy/agc038-solution) ## 可行边与必须边 (注意和二分图中的进行区分) 先跑个最大流。无论 $(u,v)$ 是可行边还是必须边,它都必须**满流**。 如果不满流显然没必要割掉这条边。 $(u,v)$ 是可行边(包含在**某个**最小割的方案中)当且仅当:残量网络中 $u$ 不能到 $v$(即:$u$ 和 $v$ 不在同一个 SCC)。 证明:由于 $(u,v)$ 满流所以残量网络上一定有边 $(v,u)$。如果 $u$ 能到 $v$,那么把 $u\rightarrow v\rightarrow u$ 这个环的边都反一下,发现最大流不变但是 $(u,v)$ 这条边就不满流了。 $(u,v)$ 是必须边(包含在**所有**最小割的方案中)当且仅当:残量网络中 $S$ 能到 $u$ 且 $v$ 能到 $T$(即:$u$ 和 $S$ 在同一个 SCC,$v$ 和 $T$ 在同一个 SCC)。 证明:如果 $(u,v)$ 是必须边,那么显然 $(u,v)$ 的流量增大会导致最大流增大。显然 $S$ 能到 $u$ 且 $v$ 能到 $T$ 才能满足这一点。 例题: - [P4126 [AHOI2009]最小割](https://www.luogu.com.cn/problem/P4126) --- ## 有上下界的网络流 咕咕咕