CF1709E XOR Tree
我相信如果我 NOIP 被创寺了就是被这种题创寺了。
首先将异或变成 \(d_x \oplus d_y \oplus a_{lca} = 0\),然后显然如果有多个 \(lca\) 满足这个条件我们只需要更改这个 \(lca\) 即可。
我们发现我们一定是从下往上改的,因为从上往下改不会使得答案更优。
考虑启发式合并,我们将重儿子的 \(d_x\) 插入 map 里,暴力遍历轻儿子有没有满足条件的,如果有满足条件的就将答案加一并把这个子树丢掉即可,时间复杂度 \(O(n \log^2 n)\)。

浙公网安备 33010602011771号