CF911G 题解

考虑分块。

如果你做过未来日记就会知道一个很明显的做法——值域并查集。

先考虑整块:

  • 块内没有 \(x\) 则跳过本次操作。

  • 块内有 \(x\) 没有 \(y\) 则令 \(fa[x] = y\)

  • 块内存在 \(x\) 也存在 \(y\) 则暴力修改,注意到每次这种修改都会让块内元素种类减少 \(1\) ,而块内颜色种类始终不增,又因为一共只有 \(100\) 种颜色,所以均摊操作一次下来是 \(O(\frac{100 \times \sqrt n}{n})\) 的。

对于散块暴力 \(O(\sqrt n)\) 重构即可。

posted @ 2024-01-31 00:00  ChiFAN鸭  阅读(7)  评论(0编辑  收藏  举报