异或是一种神奇的运算大部分人把它总结成不进位加法.
在生活中...xor运算也很常见.比如,对于一个问题的回答,是为1,否为0.那么:
好了,现在我们来制造和处理一些复杂的情况.比如我们将给出一颗树,它很高兴自己有N个结点.树的每条边上有一个权值.我们要进行M次询问,对于每次询问,我们想知道某两点之间的路径上所有边权的异或值.
输入文件第一行包含一个整数N,表示这颗开心的树拥有的结点数,以下有N-1行,描述这些边,每行有3个数,uvw表示u和v之间有一条权值为w的边.接下来一行有一个整数M,表示询问数.之后的M行,每行两个数uv,表示询问这两个点之间的路径上的权值异或值.
for(int i=1;i<=log2n;++i)
for(int j=0;j<=n;++j){
for(int i=log2n;i>=0;--i)
for(int i=log2n;i>=0;--i){
int ans=0;
for(int i=1;i<=m;++i){