CF1738F 题解

blog。duel 的时候对上了脑电波很快过了,记一下这种我本来完全不会的题。


肯定是搞掉平方。把 \(n_c\) 移到左边:\(\dfrac{\sum\limits_{u\in S} deg_u}{|S|}=\text{平均数}\le |S|\)。然后直接放缩左边,于是一个充分条件是:

\[\max\limits_{u\in S} deg_u\le|S| \]

考虑构造合法解。观察到,假设 \(u\) 在集合 \(S\) 内,只需要将他的邻居全部放同一个颜色就行。于是有下面的简单算法:

  • \(deg\) 从大到小排序。
  • 对于当前点 \(u\),如果邻居都没有被染色,直接新开一个颜色就行。
  • 如果邻居有颜色,直接把 \(u\) 的颜色改成那个邻居的颜色就行。

容易证明其正确性。code,操作次数 \(O(n)\)

posted @ 2024-10-27 22:26  liangbowen  阅读(6)  评论(0编辑  收藏  举报