像潮落潮涌,送我奔向自由。|

寂静的海底

园龄:3年2个月粉丝:59关注:15

2024-06-20 21:14阅读: 28评论: 0推荐: 1

【题解】CF1949B | 二分答案 霍尔定理

本题可以做到低于 O(n2)

最大化最小值,考虑二分答案 v 变为检查可行性:每个主菜匹配的开胃菜的两个值都要在 (,xv],[x+v,+] 间选取,问是否存在主菜与开胃菜的完美匹配。

对开胃菜排序,得到第 i 个主菜可以匹配到的开胃菜集合为一个后缀和一个前缀:[1,Li][Ri,n]


做法一

考虑使用霍尔定理检查完美匹配:枚举 S 并检查 |f(S)||S| 的最小值是否为 0,其中 f(S) 表示与左部点 S 存在连边的右部点集合。

枚举 S 是困难的,S 总共有 2n 种,不妨枚举 f(S),并考虑最大的 |S|,首先 f(S) 一定是若干前缀和后缀的并,所以 f(S) 的形态为 [1,l][r,n]

枚举 lr,对于一个 f(S)=[1,l][r,n] 最大的 |S| 即 所有点 u 满足存在连边的右部点 e(u)f(S)u 构成的集合,即 [LilRir],直接做可以 O(n2loga)

使用线段树在扫描 l 时维护 r 的答案,支持区间加区间最值,容易做到 O(nlognloga)


做法二,还能再快一点。

该问题弱于 AGC076F,使用反悔贪心即可。时间复杂度 O(nlognloga),注意到每个点不能匹配的区间是单调的,所有优先队列可以换成队列,时间复杂度 O(nloga)

posted @   寂静的海底  阅读(28)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起