P11109 [ROI 2023 Day 2] 会议 题解

· · 题解

首先最大反链等于最小链覆盖,所以只需要求出一个方案,满足大小为 \frac n2,且最小点覆盖为 \frac m2 即可。

我们考虑贪心的从左往右扫线段,将线段按照右端点排序,然后挨个选择没有被覆盖的区间中右端点最小的作为新的最小点覆盖点集中的点。

然后等到最小点覆盖有 \frac m2 的时候,将所有区间分成两部分,能够被当前最小点覆盖覆盖到的区间和不能的。

这两部分中一定有一部分区间个数大于等于 \frac n2,于是选择大的那一部分,在保证最小点覆盖为 \frac m2 的时候任意选择剩下的区间即可。

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