二分图匹配,霍尔定理

霍尔定理

霍尔定理给出了,二分图左侧的点能全部匹配上的充要条件

  • 二分图左侧的点集为 LL,右侧的点集为 RR
  • 点集 SSLL 的一个子集。
  • N(S)N(S) 表示与 SS 中的点有连边的点的集合。显然 N(S)N(S)RR 的子集。

则二分图左侧的点能全部匹配上的充要条件是:

  • 对于任意 SS,有 N(S)S|N(S)|\ge|S|

证明

还不会(

【Luogu P3488】LYZ-Ice Skates

题目链接

将每一个人与他能穿上的鞋子连一条边,要求的就是:是否所有人都能匹配上。

显然可以使用霍尔定理。如果存在一个 SS,使得 N(S)<S|N(S)|<|S|,那么就不合法。否则合法。

我们考虑计算:是否存在 SS,使得 SN(S)>0|S|-|N(S)| > 0

首先,如果 SS 中的两个尺码差距 d\le d,那么可以将它们中间的尺码全选上。此时 S|S| 不变,N(S)|N(S)| 变小,所以 SN(S)|S|-|N(S)| 一定不会变小。如下图:

这样操作后,选取的结果一定构成一些没有交点的梯形。要判断总的 SN(S)|S|-|N(S)| 是否为正,我们判断是否有其中一个梯形的 SN(S)|S|-|N(S)| 为正即可。

设尺码为 ii 的人数为 aia_i,则尺码区间为 [l,r][l,r] 的梯形的 SN(S)|S|-|N(S)| 即为:

(i=lraik)dk\left(\sum_{i=l}^r a_i-k\right)-d\cdot k

我们发现,只需要对 aika_i-k 维护最大子段和即可。