QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: jiangly

Posted at: 2025-12-14 06:54:33

Last updated: 2025-12-14 06:54:36

Back to Problem

题解

我们先考虑找到一个题目中所说的划分,即 $V=A+B$,$A$ 是团,$B$ 是独立集(不需要非空)。

度数最大的点一定在一个划分中位于 $A$ 中:$A$ 中的点度数至少为 $|A|-1$,$B$ 中的点度数至多为 $|A|$。如果 $B$ 中有度数为 $|A|$ 的点,可以直接将其加入 $A$。而如果 $B$ 中有度数为 $|A|-1$ 的点,那么如果 $|A|>1$,则 $A$ 中一定有度数至少为 $|A|$ 的点,否则说明 $A$ 中的点和这个点都是孤立点,所以可以随便替换。

所以只需要将所有点按度数从大到小排序后贪心加入 $A$(加入后还是团就加入)就能得到一个划分,并且这个划分是所有划分中 $A$ 最大的。然后我们还需要计算数量,注意到其他的最大团只能是 $A$ 替换掉一个点,如果替换掉两个点那么说明新加的两个点有边,但它们本身在 $B$ 中,矛盾。所以只用统计 $B$ 中度数等于 $|A|-1$ 的点数即可。

独立集的部分取补图后是完全一致的,当然也可以直接用原图的划分来求。

时间复杂度 $O(n+m)$。

Comments

No comments yet.