
预处理每个点到根节点的 xor 值之后就变成了一个路径上任意两点 xor 的和,这个我们可以通过维护某一位是 \(1\) 的个数,然后分别统计贡献来做到。至于修改操作,就等价于一个子树某一位翻转修改。具体用树链剖分 \(+\) 线段树实现即可。
\(from\) https://www.luogu.com.cn/article/uibh8d3n

预处理每个点到根节点的 xor 值之后就变成了一个路径上任意两点 xor 的和,这个我们可以通过维护某一位是 \(1\) 的个数,然后分别统计贡献来做到。至于修改操作,就等价于一个子树某一位翻转修改。具体用树链剖分 \(+\) 线段树实现即可。
\(from\) https://www.luogu.com.cn/article/uibh8d3n