「学习笔记」Hall定理

Descripition

设一张二分图两部点数为 \((x,y),x<y\),则其的一个完备匹配定义为 左部 \(x\) 个点成为匹配点

特别地,当 \(x=y\) 时,这类匹配也被称为完备匹配

一个如上定义的二分图存在 完备匹配 的充要条件是对于左部点的大小为 \(k\) 的任意子集 \(S\),这些点在右部连到的点集(也被称为 \(S\) 的邻域,记为 \(N(S)\))大小不小于 \(k\)

Proof

首先证明必要性,如果一个点集的 \(N(S)\) 不足 \(|S|\),那么该集合并不能找到一个完备匹配,与定义相反

其次是充分性,考虑使用归纳的手段,这部分分两种情况:

  • 如果存在一个严格子集 \(S\) 满足 \(S=N(S)\),则子集本身存在完备匹配

    如果删去 \(S,N(S)\) 后出现不满足条件的集合 \(T\),那么在原二分图中取子集 \(S\cup T\),必然有 \(|N(S\cup T)|<|S\cup T|\),与题设矛盾

    那么由此证明如果存在 \(|S|=|N(S)|\)\(\rm{Hall}\) 定理成立

  • 如果所有子集的 \(|N(S)|\) 均大于 \(|S|\),那么找到一个点 \(u\) 并找到 \((u,v)\in E\),删掉 \(u,v\in V,(u,* ), (* ,v)\in E\)

    不难发现此时剩下的二分图每个子集 \(S\) 都能满足 \(|N(S)|\ge |S|\),而且因为删掉了一个点,问题是原问题的子问题

    根据归纳假设,\(\rm{Hall}\) 定理在此情况下也成立


例题

CF1519F

对于所有子集 \(S\),均需满足下式:

\[\displaystyle{\sum_{i\in S}a_i\le\sum_{j\in(\cup_{i\in S}L_i )}b_j} \]

那么把每个箱子和锁拆成 \(a_i,b_i\) 个点,每个箱子上每个点向每个锁的每个点连边

设箱子对应的点为左部点,若满足其有完美匹配,则上式成立

那么状压 \(DP\) 可以很好的解决这个问题:设 \(\rm{dp(i,S)}\) 表示考虑了前 \(i\) 个箱子后,右部点 每个锁剩下的点数为 \(S\)

这里 \(S\) 使用五进制表示,实现每次暴力编码解码即可

转移考虑枚举当前箱子拆出来的点匹配右边的哪种点,匹配几个,注意产生匹配就要付出代价,但是只用付出一次

\(\rm{dfs}\) 实现转移是容易的

合法状态并不能让复杂度达到 \(\Theta(n\times 5^{2n})\) 的上界,但是朴素 \(\rm{dfs}\) 过了??

ARC076F

本题需要 \(\rm{Hall}\) 定理的一个推论:一个任意二分图 \((V,E)\) 的最大匹配为 \(|V|-\max\limits_{S\in V}\{|S|-|N(S)|\}\)

该推论可能可以通过增广路和匈牙利算法理解

问题即求解 \(\max\limits_{S\in V}\{|S|-N(S)\}\)

发现对于一个特定的点集 \(x\),其结果就是 \(|S|-\max\limits_{i\in S} L_i-(m+1-\min\limits_{i\in S} R_i)\)

使用数据结构维护扫描线容易完成

posted @ 2021-08-25 17:38  没学完四大礼包不改名  阅读(3306)  评论(2)    收藏  举报