题目描述
Yuki 有一棵包含 2n 个结点的树,结点的编号为 0 至 2n−1,第 i 条边连接结点 ui 与结点 vi。
设 lcar(u,v) 表示,以结点 r 为根时,结点 u 与结点 v 的最近公共祖先。你需要帮助 Yuki 求出:
$$\bigoplus_{0 \le u < v < 2^n} \operatorname{lca}_{u \oplus v}(u, v)$$
其中 ⊕ 表示按位异或运算。
输入格式
本题包含多组测试数据。
第一行包含一个正整数 t (1≤t≤104),表示测试数据组数。
对于每组测试数据:
- 第一行包含一个正整数 n (1≤n≤21)。
- 接下来 2n−1 行,第 i 行包含两个正整数 ui,vi (0≤ui,vi<2n, ui=vi)。
保证输入数据形成一棵树,保证所有测试数据中 2n 的总和不超过 221。
输出格式
对于每组测试数据,输出一行,包含一个整数,表示答案。
4
1
0 1
2
0 1
1 2
2 3
3
0 1
0 2
0 3
0 4
0 5
0 6
0 7
3
4 5
2 6
3 7
0 2
1 5
2 7
6 4
1
2
0
4
提示
对于第 1 组测试数据:
- 以结点 1 为根时,结点 0 与结点 1 的最近公共祖先为结点 1,因此答案为 lca1(0,1)=1。
对于第 2 组测试数据:
- 我们计算所有点对 (u,v) 的 lcau⊕v(u,v):
- (0,1):0⊕1=1,lca1(0,1)=1。
- (0,2):0⊕2=2,lca2(0,2)=2。
- (0,3):0⊕3=3,lca3(0,3)=3。
- (1,2):1⊕2=3,lca3(1,2)=2。
- (1,3):1⊕3=2,lca2(1,3)=2。
- (2,3):2⊕3=1,lca1(2,3)=2。
- 异或和为 1⊕2⊕3⊕2⊕2⊕2=2。