题解:[2019 KAIST RUN Spring] Jealous Teachers
题意:给定一个二分图,左部 \(n-1\) 个点,右部 \(n\) 个点。求出一组匹配,每条边可以匹配多次,要求每个左部点匹配 \(n\) 次,每个右部点匹配 \(n-1\) 次。
直接跑网络流复杂度不太对劲,考虑 Hall 定理:对于 \(S\subset L\),有 \(n|S|\le (n-1)|N(S)|\)。变形得到 \(|N(S)|\ge \frac{n}{n-1}|S|=|S|+\frac{|S|}{n-1}\)。注意到 \(1\le|S|\le n-1\),故存在匹配等价于 \(|N(S)|\ge |S|+1\)。
这个限制和 P12785 [ICPC 2024 Yokohama R] Remodeling the Dungeon 2 一样,考虑类似的构造方式。
如果每个左部点和右部点只能匹配一次,上面的限制保证了此时存在大小为 \(n-1\) 的匹配。求出这样一组匹配,然后将二分图定向:所有匹配边的起点为左部点,所有非匹配边的起点为右部点。此时有右部点中有唯一一个未匹配点,从它开始在定向后的图上 dfs。可以证明如果二分图满足上面的限制,那么所有点都会在 dfs 中访问到。
考虑 dfs 树,树上每一个左部点都有恰好一个儿子。因此,每个左部点为根的子树中,左部点和右部点数量相等;每个右部点为根的子树中,右部点数量比左部点多 \(1\)。直接在 dfs 树上贪心匹配,对于每个 \(x\),先递归所有子树,然后可以归纳证明 \(x\) 剩余的匹配数不小于所有儿子的剩余匹配数之和,所以可以用 \(x\) 补完所有儿子的匹配,使得子树中除了 \(x\) 都符合要求。最后由于左右部总匹配数相等,一定会匹配完。
复杂度瓶颈在于求最大匹配,可以做到 \(\mathcal O(m\sqrt{n})\)。

浙公网安备 33010602011771号