Hall 定理 笔记

邻域 \(N(S)\):所有和 \(S\) 中的点有连边的点组成的集合。

Hall 定理:二分图一部中选出点集 \(S\)\(S\) 中的每个点都能匹配,当且仅当 \(\forall T\subseteq S,|T|\le |N(T)|\)

P3488 [POI 2009] LYZ-Ice Skates

可以建出二分图,让人连向所有他能穿的鞋子。

套用 Hall 定理,代表人的点集是 \(S\),人能选到的鞋子的点集就是 \(|N(S)|\)

进一步发现,连续的子区间更容易不合法,因为不合法的 \(T\),选择的鞋子一定有重合的部分,如果没有重合的部分,这个不合法的 \(T\) 可以拆分成多个 \(T'\)。考虑 \(|T|=2\) 的情况,因为选择的鞋子已经重合,选择这中间的所有人都不会增加鞋子数 \(|N(T)|\),而会增加 \(|T|\)

因此问题转化成判断是否 \(\forall l,r\),满足 \(\sum_{i=l}^r a_i\le k(r-l+1+d)\),即 \(\sum_{i=l}^r (a_i-k)\le dk\),使用线段树维护最大子段和判断是否合法即可。

posted @ 2025-08-13 20:10  Garbage_fish  阅读(10)  评论(0)    收藏  举报