Loading

CF1709E XOR Tree

我相信如果我 NOIP 被创寺了就是被这种题创寺了。

首先将异或变成 \(d_x \oplus d_y \oplus a_{lca} = 0\),然后显然如果有多个 \(lca\) 满足这个条件我们只需要更改这个 \(lca\) 即可。

我们发现我们一定是从下往上改的,因为从上往下改不会使得答案更优。

考虑启发式合并,我们将重儿子的 \(d_x\) 插入 map 里,暴力遍历轻儿子有没有满足条件的,如果有满足条件的就将答案加一并把这个子树丢掉即可,时间复杂度 \(O(n \log^2 n)\)

posted @ 2025-11-10 16:50  Alexande  阅读(2)  评论(0)    收藏  举报