| 2026 SZPU Programming Contest |
|---|
| Finished |
本题定义、输入格式、输出格式均与困难版本相同,在这个版本中,$$$n\le 2\times 10^5$$$,但你只需构造出任意符合条件的树即可。
排列:长度为 $$$n$$$ 的定义为由 $$$1\sim n$$$ 以不同顺序组成的序列,且每个元素恰好出现一次。例如 $$$[2,1,3],[2,4,1,3]$$$ 都是排列,而 $$$[4,1,2]$$$ 不是排列,因为 $$$3$$$ 没有出现,$$$[1,2,3,2]$$$ 不是排列,因为 $$$2$$$ 出现了 $$$2$$$ 次。
树的dfs序:对一棵树进行深度优先遍历(DFS),每当我们第一次访问某个节点时,就将该节点编号加入序列中。得到的访问顺序称为DFS 序。例如:
对于给定的树,$$$[1,2,3,4,5,6,7],[1,3,4,7,5,6,2],[3,4,1,2,7,5,6]$$$ 均是这棵树能形成的 dfs 序。$$$[1,2,4,3,5,6,7]$$$ 不是这棵树的 dfs 序,因为 $$$2$$$ 号点到 $$$4$$$ 号点存在未访问的 $$$3$$$ 号点,$$$[1,2,3,4,5,7,6]$$$ 不是这棵树的 dfs 序,因为子树 $$$5$$$ 不满足 DFS 遍历性质。
现在,给定 $$$2$$$ 个 $$$1\sim n$$$ 组成的排列,现在要求你构造一棵树,使得这棵树包含这两种dfs序,可以证明这样的树总是存在的。
第一行输入一个正整数 $$$T(1\le T\le 10^4)$$$,表示测试组数。
接下来每组测试中:
此外,数据保证所有测试点的 $$$n$$$ 之和不超过 $$$2\times 10^5$$$。
对于每组数据,输出共 $$$n-1$$$ 行,使其形成一棵树,每行输出 $$$2$$$ 个正整数 $$$u,v(1\le u,v\le n,u\neq v)$$$,表示一条边。
如果存在多种合法解,输出其中任意一种即可。
361 2 3 6 5 41 2 3 4 5 681 2 8 5 7 4 6 31 6 3 4 5 7 2 871 2 3 4 5 6 71 3 4 7 5 6 2
1 2 2 3 3 4 3 5 3 6 1 2 2 8 1 5 5 7 1 4 1 6 6 3 1 2 1 3 3 4 3 5 5 6 3 7
| Name |
|---|


