QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: wangmarui

Posted at: 2026-06-01 10:14:37

Last updated: 2026-06-01 15:02:21

Back to Problem

New Editorial for Problem #18123

定义一个点集 $v$ 表示目前所有没有确定其所有边的点的点集。

考虑这么一个过程:从左到右询问一个极大独立集,记其为 $v1$,不在极大独立的点在 $v2$。

那么此时,$v1$ 中的点一定没有互相连边(因为其是一个极大独立集),因此我们依次把 $v2$ 的每一个点都单独塞进 $v1$ 中进行二分查找边,然后将 $v2$ 继续进行递归,重复这个过程即可。

考虑次数为什么是对的?

对于询问极大独立集的过程中,若一个点加入成功,我们将其计入贡献,共 $n$ 次询问。

若一个点加入失败,则这个点一定与极大独立集中的至少一个点有连边,将贡献加到边上,共 $m$ 次询问。

将 $v2$ 的每个点在 $v1$ 里二分的过程中,每条边贡献 $\lceil \log n \rceil$ 次询问,共 $m \lceil \log n \rceil$ 次询问。

在每次二分完一条边之后,我们还需要花费一次操作判断 $v1$ 中是否还存在一个点对其有连边,将贡献加到边上,共 $m$ 次询问。

因此总询问次数为 $n + m(2 + \lceil \log n \rceil)$ 次。

Comments

avatar
Milmon
你咋不是无名佚了