P8252 [NOI Online 2022 提高组] 讨论

不知道为啥觉得这道题巨难捏。

我们尝试不用比较偏灵感的思路来做一下这道题。


考虑 \(m\le 2\times 10^6\) ,我们可以想到枚举公共的一个元素,这样我们就只需要考虑元素之间的包含关系即可。

元素的包含关系构成的是一个 \(\text{DAG}\) ,但是如果任意两两都存在包含关系的话,必然是以一条链的形式存在的。我们相当于是要判断对于每一个元素作为公共元素时,所对应的集合是否是是链的包含关系。

对于一条满足条件的链,我们可以发现,其集合的大小一定是递增的,所以我们不难想到,如果我们将所有的集合按照 \(\text{size}\) 排序的话,只需要判断相邻的两个是否满足包含关系(后一个包含前一个)即可。

我们再考虑将所有的链并在一起,如果是满足链的包含关系,此时的图一定是满足一个外向树(包含指向被包含)。我们直接 \(\text{check}\) 即可。

posted @ 2022-03-27 19:10  Point_King  阅读(149)  评论(0编辑  收藏  举报