#P17304. [ICPC 2026 Xi'an I] XOR and LCA

    ID: 19714 远端评测题 4000ms 512MiB 尝试: 0 已通过: 0 显示难度提高+/省选− 上传者: 标签>ICPC2026省赛/邀请赛西安

[ICPC 2026 Xi'an I] XOR and LCA

题目描述

Yuki 有一棵包含 2n2^n 个结点的树,结点的编号为 00 至 2n−12^n - 1,第 ii 条边连接结点 uiu_i 与结点 viv_i。

设 lca⁡r(u,v)\operatorname{lca}_{r}(u, v) 表示,以结点 rr 为根时,结点 uu 与结点 vv 的最近公共祖先。你需要帮助 Yuki 求出:

$$\bigoplus_{0 \le u < v < 2^n} \operatorname{lca}_{u \oplus v}(u, v)$$

其中 ⊕\oplus 表示按位异或运算。

输入格式

本题包含多组测试数据。

第一行包含一个正整数 tt (1≤t≤104)(1 \le t \le 10^4),表示测试数据组数。

对于每组测试数据:

  • 第一行包含一个正整数 nn (1≤n≤21)(1 \le n \le 21)。
  • 接下来 2n−12^n - 1 行,第 ii 行包含两个正整数 ui,viu_i, v_i (0≤ui,vi<2n, ui≠vi)(0 \le u_i, v_i < 2^n,\ u_i \ne v_i)。

保证输入数据形成一棵树,保证所有测试数据中 2n2^n 的总和不超过 2212^{21}。

输出格式

对于每组测试数据,输出一行,包含一个整数,表示答案。

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

提示

对于第 11 组测试数据:

  • 以结点 11 为根时,结点 00 与结点 11 的最近公共祖先为结点 11,因此答案为 lca⁡1(0,1)=1\operatorname{lca}_1(0, 1) = 1。

对于第 22 组测试数据:

  • 我们计算所有点对 (u,v)(u, v) 的 lca⁡u⊕v(u,v)\operatorname{lca}_{u \oplus v}(u, v):
    • (0,1)(0, 1):0⊕1=10 \oplus 1 = 1,lca⁡1(0,1)=1\operatorname{lca}_1(0, 1) = 1。
    • (0,2)(0, 2):0⊕2=20 \oplus 2 = 2,lca⁡2(0,2)=2\operatorname{lca}_2(0, 2) = 2。
    • (0,3)(0, 3):0⊕3=30 \oplus 3 = 3,lca⁡3(0,3)=3\operatorname{lca}_3(0, 3) = 3。
    • (1,2)(1, 2):1⊕2=31 \oplus 2 = 3,lca⁡3(1,2)=2\operatorname{lca}_3(1, 2) = 2。
    • (1,3)(1, 3):1⊕3=21 \oplus 3 = 2,lca⁡2(1,3)=2\operatorname{lca}_2(1, 3) = 2。
    • (2,3)(2, 3):2⊕3=12 \oplus 3 = 1,lca⁡1(2,3)=2\operatorname{lca}_1(2, 3) = 2。
  • 异或和为 1⊕2⊕3⊕2⊕2⊕2=21 \oplus 2 \oplus 3 \oplus 2 \oplus 2 \oplus 2 = 2。