AT_arc156_c [ARC156C] Tree and LCS
题目描述
有一棵编号为 $1$ 到 $N$ 的树 $T$。$T$ 的第 $i$ 条边($1\leq i\leq N-1$)连接了顶点 $u_i$ 和顶点 $v_i$。
利用 $T$,我们定义排列 $P=(P_1,P_2,\ldots,P_N)$($1$ 到 $N$ 的一个排列)的**相似度**如下:
- 对于 $T$ 上任意的简单路径 $x=(x_1,x_2,\ldots,x_k)$,令 $y=(P_{x_1},P_{x_2},\ldots,P_{x_k})$。此时,$x$ 和 $y$ 的最长公共子序列的最大长度即为相似度。
请构造一个使相似度最小的排列 $P$。
**子序列的定义**
数列的**子序列**是指从数列中删除 $0$ 个或多个元素后,按原顺序连接剩下元素得到的数列。例如,$(10,30)$ 是 $(10,20,30)$ 的子序列,但 $(20,10)$ 不是 $(10,20,30)$ 的子序列。
**简单路径的定义**
在图 $G$ 上,顶点 $X,Y$ 间的顶点序列 $v_1,v_2,\ldots,v_k$,满足 $v_1=X$,$v_k=Y$,且对于 $1\leq i\leq k-1$,$v_i$ 和 $v_{i+1}$ 有边相连,这样的序列称为从 $X$ 到 $Y$ 的**步行**。如果 $v_1,v_2,\ldots,v_k$ 均互不相同,则称为从 $X$ 到 $Y$ 的**简单路径**(或简称**路径**)。
输入格式
输入通过标准输入给出,格式如下:
> $N$
> $u_1$ $v_1$
> $u_2$ $v_2$
> $\vdots$
> $u_{N-1}$ $v_{N-1}$
输出格式
请输出一个使相似度最小的排列 $P$,用空格分隔。如果有多个解,输出任意一个均可。
说明/提示
### 限制条件
- $2\leq N\leq 5000$
- $1\leq u_i,v_i\leq N$
- 给定的图一定是一棵树
- 输入的所有数均为整数
### 样例解释 1
输出样例中的排列的相似度为 $1$。具体计算如下:
- 当 $x=(1)$ 时,$y=(P_1)=(3)$,$x$ 和 $y$ 的最长公共子序列长度为 $0$。
- 当 $x=(2)$ 时,$y=(P_2)=(2)$,$x$ 和 $y$ 的最长公共子序列长度为 $1$。
- 当 $x=(3)$ 时,$y=(P_3)=(1)$,$x$ 和 $y$ 的最长公共子序列长度为 $0$。
- 当 $x=(1,2)$ 时,$y=(P_1,P_2)=(3,2)$,$x$ 和 $y$ 的最长公共子序列长度为 $1$。对于反向的 $x=(2,1)$ 也同理。
- 当 $x=(2,3)$ 时,$y=(P_2,P_3)=(2,1)$,$x$ 和 $y$ 的最长公共子序列长度为 $1$。对于反向的 $x=(3,2)$ 也同理。
- 当 $x=(1,2,3)$ 时,$y=(P_1,P_2,P_3)=(3,2,1)$,$x$ 和 $y$ 的最长公共子序列长度为 $1$。对于反向的 $x=(3,2,1)$ 也同理。
可以证明不存在相似度小于等于 $0$ 的排列,因此这就是答案。
### 样例解释 2
当存在多个使相似度最小的排列时,输出任意一个均可。例如,`4 3 2 1` 这样的输出也是正确答案。
由 ChatGPT 4.1 翻译