lby学长の二分图

posted on 2024-07-15 03:27:03 | under | source

理论

最大匹配:匈牙利算法

本质就是不断找增广路,复杂度 \(O(n^3)\)

最小点覆盖

有定理:最小点覆盖 = 最大匹配

如何证明?显然最大匹配 <= 最小点覆盖,因为你必须要覆盖所有匹配边,而这些边没有共同顶点,也就是无法被一个点同时覆盖。

然后可以构造出一种点覆盖 = 最大匹配的情况。具体而言,对于右部点,遍历以其为起点的所有增广路,然后标记左部被访问的和右部未被访问的点。恰好将所有匹配边一端标记,所以 = 最大匹配。

关于为何能覆盖所有边的简要证明:称被选为点覆盖为“标记”。先将匹配边的右部点设标记,然后从右部点开始找一条失败的增广路,将右部点上的标记移到增广路上对应左部点,则覆盖的边增加了。重复该过程则所有边被覆盖,过程中标记点数恒为最大匹配。

最大独立集

有定理:最大独立集 = n - 最小点覆盖。因为独立集之间互相无边,它们的补集必然覆盖所有边,即点覆盖。

重要:Hall 定理

考虑这样一个问题:在二分图中,是否存在一种匹配,使得左部点均为匹配点。即完美匹配问题。

显然这必然是最大匹配,所以我们跑一遍匈牙利算法?肯定超时,于是引出 Hall 定理。

Hall 定理:若对于二分图左部任意点集 \(S\),右部与其相连的点集 \(T\),都有 \(|S|\ge |T|\),那么存在完美匹配(充要条件)。

必要性:若不满足条件,那么对 \(S\) 而言相邻的右部点不足 \(|S|\) 个,必然不会有完美匹配。

充分性:若满足条件,假设不存在完美匹配。先找最大匹配,然后对于左部非匹配点 \(s\),我们对它使用 Hall 定理,必然有右部点 \(t\)\(s\) 相连。若 \(t\) 是非匹配点,就得到增广路 \(s\to t\) 所以矛盾;反之,考虑 \(t\) 的匹配点 \(s_2\),那么对 \(\{ s,s_2\}\) 使用 Hall 定理,必然有 \(t_2\) 存在。以此类推,因为点有限,所以一定会找到一条增广路,与这是最大匹配矛盾,证毕。

Hall 定理推论

最大匹配为 \(|A|-\max(|S_i|-|T_i|)\)\(A\) 为左部点集,\(S_i\in A\)\(T_i\)\(S_i\) 相邻右部点。

例题

非常好题目,使我的___旋转。

  • P1129 [ZJOI2007] 矩阵游戏

对于点 \((x,y)\),不妨视为一条连接行 \(x\) 和列 \(y\) 的边。那么就得到了一张二分图。

对于交换行,等价于交换二分图同一部的两点的编号。交换列同理。

考虑原图的最大匹配,由于交换操作并不会改变二分图的形态,所以一定可以通过若干次操作,使得所有行 \(i\) 与列 \(i\) 匹配。

所以有解当且仅当原图最大匹配为 \(n\)

  • CF981F Round Marriage

_

  • AT_arc106_e [ARC106E] Medals

o

  • CF1009G Allowed Letters

和上一题基本一毛一样。按字典序贪心地填字符,那么就变成了一个判定问题。

从二分图的“限制要求”这一部出发不好搞,所以我们看“字符”这一部。

容易发现相同字符是等价的,所以贪心地全选,接着用 sosdp 处理出另一部的相连节点数量就可。

  • AT_arc080_d [ARC080F] Prime Flip

qwq。

  • LOJ6062 Pair

poq。

posted @ 2026-01-14 17:34  Zwi  阅读(0)  评论(0)    收藏  举报