题目 这题大意是说对一棵有边权的树,不断删边,并询问每次删边后有多少条路径上的边权值异或和为0。 记点a到点b的异或和为dist(a,b) 首先,时光倒流,将删边变成加边。 接着,利用x^x=0,任找一个参照物c,将dist(a,b)变成dist(a,c)^dist(b,c) 这样,一次dfs算出所有点到c的距离,维护一个平衡树,不断启发式合并,并更新答案即可。 其实如果追求效率,hash表也是可以的。但为了省事,我用了map。 代码