Hall 定理

Hall 定理

一张二分图存在完美匹配,当且仅当对于左部点的任意非空子集,其中的点连向的不同右部点的数量不小于该子集大小

\(L\) 为左部点集,\(N(S)\;(S\subseteq L)\) 为点集 \(S\) 中的点连向的右部点的集合,则二分图存在匹配当且仅当 \(\forall S\subseteq L,|N(S)|\ge |S|\)

计算最大匹配数

最大匹配数为 \(|L|-\max(\max_{S\subseteq L}(|S|-|N(S)|),0)\),左侧点的最小失配数为 \(\max(\max_{S\subseteq L}(|S|-|N(S)|),0)\)

例:P3488 [POI2009] LYZ-Ice Skates

初始 \(1\sim n\) 各有 \(k\) 个,编号为 \(t\) 的元素可以匹配任意 \([t,t+d]\) 范围内的数,\(m\) 次修改每次新增 \(x\)(可为负)个编号为 \(r\) 的元素,每次修改后判断是否每个元素都可以匹配一个数字,\(n\le2\times10^5,m\le5\times10^5,r\le n-d,k,x\le10^9\)

\(x_i\) 为当前编号为 \(i\) 的元素数量,则全能匹配当且仅当 \(\forall S\subseteq([1,n-d]\cap \mathbb Z)\),有 \(\sum_{i=1}^n [\exists u\in S,i\in [u,u+d]]k\ge \sum_{u\in S}x_u\)

\(S\) 中元素从大到小为 \(a_{1\sim t}\)

则若存在 \(a_i+d<a_{i+1}\),则 \(S=\{a_{1\sim i}\}\)\(S=\{a_{i+1\sim t}\}\) 都合法显然不比 \(S=\{a\}\) 合法更弱

若存在 \(a_i+1<a_{i+1}\le a_i+d\),则 \(S=\{a\}\cup((a_i,a_{i+1})\cap \mathbb Z)\) 合法显然不比 \(S=\{a\}\) 合法更弱

因此,\(\forall S\subseteq([1,n-d]\cap \mathbb Z)\),一定存在若干个 \([l_i,r_i]\),满足所有 \(S_i=[l_i,r_i]\cap\mathbb Z\) 都符合要求,不弱于 \(S\) 符合要求

显然这样的 \(S_i\) 本身也是需要满足要求的

因此全能匹配当且仅当 \(\forall 1\le l\le r\le n-d\),有 \(k(r-l+1+d)\ge \sum_{i=l}^r x_i\)

\(x'_i=x_i-k\),则条件变为 \(\forall 1\le l\le r\le n-d\)\(kd\ge \sum_{i=l}^r x'_i\)

\(x'\) 序列的最大子段和不超过 \(kd\)

因此线段树维护最大子段和即可

时间复杂度 \(O(n\log n)\)

代码

参考

  1. \(\text{2024.12.19 Bipartite Graph.pdf \; \;by lanos212}\)
  2. Hall 定理
posted @ 2025-03-31 07:01  Hstry  阅读(3)  评论(0)    收藏  举报