#ATarc170f. [ARC170F] Edge Deletion 2

[ARC170F] Edge Deletion 2

题目描述

给定一棵有 NN 个顶点的树,顶点编号为 11NN。树的第 ii 条边连接顶点 uiu_i 和顶点 viv_i,为无向边。

对于 11NN 的一个排列 P=(P1,,PN)P=(P_1,\ldots,P_N),定义数列 A(P)A(P) 如下:

  • A(P)A(P) 初始为空。对每个顶点 ii,在顶点 ii 上写下 PiP_i
  • 按照 i=1,2,,Ni=1,2,\ldots,N 的顺序,依次进行以下操作:
    • 如果顶点 ii 是孤立点,则在 A(P)A(P) 的末尾添加 00
    • 否则,从与顶点 ii 相邻的顶点中,选择写有最小整数的顶点。将该顶点上写的整数添加到 A(P)A(P) 的末尾,并删除顶点 ii 与该顶点之间的边。

请你在所有可能的 A(P)A(P) 中,求出字典序最小的一个。

给定 TT 组测试数据,请分别输出答案。

输入格式

输入按以下格式从标准输入读入:

TT
case1\mathrm{case}_1
\vdots
caseT\mathrm{case}_T

每组数据格式如下:

NN
u1u_1 v1v_1
u2u_2 v2v_2
\vdots
uN1u_{N-1} vN1v_{N-1}

输出格式

输出 TT 行。第 ii 行输出第 ii 个测试用例的答案。

样例 1

输入

3
5
1 2
2 3
2 4
4 5
8
8 6
7 2
2 1
3 7
5 6
1 6
4 3
7
7 1
5 2
1 2
6 5
4 1
5 3

输出

1 2 0 1 3
1 2 2 3 1 4 0 0
1 2 2 0 3 0 4

说明/提示

数据范围

  • 1T1051\leq T\leq 10^5
  • 2N2×1052\leq N\leq 2\times 10^5
  • 1ui,viN1\leq u_i,v_i\leq N
  • 给定的图一定是一棵树
  • 输入的所有数均为整数
  • 所有测试用例中 NN 的总和不超过 2×1052\times 10^5

样例解释 1

对于第 11 个测试用例,P=(4,1,2,3,5)P=(4,1,2,3,5) 时,A(P)=(1,2,0,1,3)A(P)=(1,2,0,1,3),具体过程如下:

  • 顶点 11 相邻顶点中,写有最小整数的是顶点 22。将 P2=1P_2=1 添加到 A(P)A(P) 末尾,并删除顶点 11 与顶点 22 的边。
  • 顶点 22 相邻顶点中,写有最小整数的是顶点 33。将 P3=2P_3=2 添加到 A(P)A(P) 末尾,并删除顶点 22 与顶点 33 的边。
  • 顶点 33 是孤立点,因此在 A(P)A(P) 末尾添加 00
  • 顶点 44 相邻顶点中,写有最小整数的是顶点 22。将 P2=1P_2=1 添加到 A(P)A(P) 末尾,并删除顶点 44 与顶点 22 的边。
  • 顶点 55 相邻顶点中,写有最小整数的是顶点 44。将 P4=3P_4=3 添加到 A(P)A(P) 末尾,并删除顶点 55 与顶点 44 的边。

可以证明,这是所有可能的 A(P)A(P) 中字典序最小的。

由 ChatGPT 4.1 翻译