、

P8252-NOI-Online-2022-提高组-讨论

题意

给出 \(n\) 个集合,找出一对 \(x,y\) 使得 \(S_x,S_y\) 有交且互不为包含关系。或报告无解。

思路

考虑有交的话按照最基本的一个题一个题讨论,考虑有这个题的所有人,那么只需要看这些人里是否有不为包含关系的人。考虑两个人讨论,即 \(S_y\subseteq S_x\)。那么有 \(|S_y|\le|S_x|\) 如果还有 \(S_z\subseteq S_x\) 活着 \(S_z\subseteq S_y\),那么它的大小只能小于 \(|S_y|\) 或者在 \([|S_y|,|S_x|]\) 了。那么这告诉我们只需要考虑和它大小相邻的集合是否有交即可。

我们考虑先按照大小排序。我们考虑现在这个人的每个点只需要考虑上一个访问这个点的人和他是否有交集。如果一个人的两个点都被同一个上一个人访问过,我们可以直接算出来它们的交集大小那么就做完了。

\(\mathcal{O}(n\log n)\)

posted @ 2026-09-24 14:48  tanghg  阅读(7)  评论(0)    收藏  举报