CF1491H Yuezheng Ling and Dynamic Tree

考虑根号做法,对编号分块。

paipa_i 表示点 ii 离开块的第一个祖先,faifa_i 表示父亲。

对于询问,不断像树剖那样跳父亲即可,单次 O(n)\mathcal O(\sqrt n)

对于修改,散块暴力,整块也暴力。

因为 fai<ifa_i<i 且每次修改 faifa_i 都会减少,故对一个块修改 n\sqrt nfaifa_i 后,块内每个元素跳 faifa_i 都会跳出块,此时 pai=faipa_i=fa_i,打个标记即可,上界 O(nn)\mathcal O(n\sqrt n)

时间复杂度 O(nn)\mathcal O(n\sqrt n)

posted @ 2022-12-01 08:39  蒟蒻orz  阅读(4)  评论(0)    收藏  举报  来源