#B278. XOR and Tree Construction

XOR and Tree Construction

题目描述

Bob 有一棵 nn 个点的无根树 TT,树上每个点都有权值,第 ii 个点的权值为 aia_i。Alice 记录了一个 n×nn\times n 的矩阵 bb,其中 bi,jb_{i,j} 表示树上 iji\to j 最短路径上所有点的点权的异或和。

Alice 观察这个矩阵,惊奇地发现矩阵里所有数都是正整数

不幸的是,某一天,Bob 把他的树搞丢了。于是你得到了 Alice 记录的矩阵,并需要还原出一种可能的树 TT 与序列 aa。值得注意的是,Alice 非常靠谱,因此你总是可以还原出至少一种树。

输入格式

本题有多组测试数据,第一行输入一个正整数 TT,代表数据组数。

对于每组数据:

  • 第一行输入一个正整数 nn
  • 接下来 nn 行,每行 nn 个正整数,其中第 ii 行第 jj 个数表示 bi,jb_{i,j}

输出格式

对于每组数据:

  • 第一行输出 nn 个数,分别代表每个点的点权 a1,a2,,ana_1,a_2,\cdots,a_n
  • 接下来 n1n-1 行,每行输出两个数 u,vu,v,代表有一条连接 u,vu,v 的边。
2
3
1 3 7
3 2 6
7 6 4
5
8 9 10 15 1 
9 1 2 14 9 
10 2 3 13 10 
15 14 13 7 6 
1 9 10 6 8
1 2 4 
1 2
2 3
8 1 3 7 8 
1 2
1 4
2 3
2 5
1
2
10000000000 29999508480
29999508480 20000000000
10000000000 20000000000
1 2

说明/提示

对于所有数据,保证:

  • 1T101\le T\le 10
  • 1n5001\le n\le 500
  • 1bi,j<2601\le b_{i,j}<2^{60}