传送门
因为异或满足结合律和交换律。
a^b^b=a
所以这个题直接求根节点到每个点路径上的异或值。
对于每组询问直接输出根到两个点的异或值的异或的值。
——代码
1 #include <cstdio> 2 #include <cstring> 3 #define MAXN 200001 4 5 using namespace std; 6 7 int n, m, cnt; 8 int head[MAXN], to[MAXN], val[MAXN], next[MAXN], dis[MAXN]; 9 bool vis[MAXN]; 10 11 inline void add(int x, int y, int z) 12 18 19 inline void dfs(int u) 20 31 } 32 } 33 34 int main() 35 45 dfs(1); 46 scanf("%d", &m); 47 for(i = 1; i <= m; i++) 48 52 return 0; 53 }View Code