题目背景
原题面存档。
题目描述
给定 n、一棵 n 个点的无向树和树上的两个不相同的节点 s,t,其中每条边的长度均为 1。节点由 1 至 n 的整数编号。记 dist(u,v) 表示 u 和 v 的距离(即简单路径经过的边数)。你需要给出一个 1 到 n 的排列 p1,p2,⋯,pn 满足以下两个条件:
- p1=s,pn=t;
- 设 di=dist(pi,pi+1)(1≤i≤n−1),那么你给出的排列需要满足以上条件的前提下,最小化 ⊕i=1n−1di,其中 ⊕ 表示按位异或。
如果有多种满足条件的排列,输出任意一种均可。
输入格式
从标准输入读入数据。
本题有多组测试数据。第一行输入一个正整数 T 表示测试数据组数。
对于每组数据,第一行输入三个正整数 n,s,t,接下来 n−1 行每行两个正整数 u,v,表示地点 u 和 v 有直接无向道路连接(即树上的一条边)。
输出格式
输出到标准输出。
对于每组数据,输出一行 n 个正整数 p1,p2,⋯,pn,你需要保证其为 1 到 n 的一个排列且 p1=s,pn=t,且 ⊕i=1n−1di 最小。
3
3 1 3
1 2
2 3
4 3 4
1 2
2 3
2 4
5 1 2
1 2
1 3
2 4
3 5
1 2 3
3 2 1 4
1 5 3 4 2
见题目目录下的 2.in 与 2.ans。
提示
样例 1 解释
该样例共有三组测试数据。
- 对于第一组数据,⊕i=1n−1di 最小可以取到 0,样例输出为 1,2,3,其中 d1=d2=1。
- 对于第二组数据,⊕i=1n−1di 最小可以取到 2,样例输出为 3,2,1,4,其中 d1=d2=1,d3=2;另一种合法输出为 3,1,2,4。
- 对于第三组数据,⊕i=1n−1di 最小可以取到 1,样例输出为 1,5,3,4,2,其中 d1=2,d2=1,d3=3,d4=1。
样例 2 解释
值得注意的是,该输入数据由所有满足 n≤10 的,且所有不同 s 和 t 的相对位置的可能的树形态构成。
这个样例,无疑是善良的出题人无私的馈赠。中间忘了。出题人相信,这个美妙的样例,可以给拼搏于 AC 这道题的逐梦之路上的你,提供一个有力的援助。
数据范围
设 ∑n 表示单个测试点内所有数据的 n 的和。对于所有测试数据,
- T≥1;
- 2≤n≤5×104,∑n≤5×105;
- 1≤s,t≤n,s=t;
- 1≤u,v≤n,u=v;
- 输入的 n−1 个 (u,v) 构成一棵树。
子任务编号 |
n |
∑n |
特殊性质 |
分数 |
1 |
≤8 |
≤103 |
无 |
5 |
2 |
≤12 |
8 |
3 |
≤5×104 |
≤5×105 |
A |
17 |
4 |
B |
20 |
5 |
C |
17 |
6 |
≤103 |
≤104 |
D |
10 |
7 |
≤5×104 |
≤5×105 |
无 |
23 |
特殊性质 A:保证每个点度数小于等于 2。
特殊性质 B:保证对于任意 x 有 $\mathrm{dist}(s,x)+\mathrm{dist}(x,t)\le \mathrm{dist}(s,t)+2$。
特殊性质 C:保证 dist(s,t)=1。
特殊性质 D:该子任务共有五个测试点,对于每一个测试点,保证 T=10 且 n=1000,并且每个测试数据中,s 在 1∼n 中等概率随机生成,t 从 1∼n 除去 s 中等概率随机生成,树从所有 n 个点的有标号树中等概率随机生成。