AT_arc156_c.[ARC156C] Tree and LCS
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一棵编号为 1 到 N 的树 T。T 的第 i 条边(1≤i≤N−1)连接了顶点 ui 和顶点 vi。
利用 T,我们定义排列 P=(P1,P2,…,PN)(1 到 N 的一个排列)的相似度如下:
- 对于 T 上任意的简单路径 x=(x1,x2,…,xk),令 y=(Px1,Px2,…,Pxk)。此时,x 和 y 的最长公共子序列的最大长度即为相似度。
请构造一个使相似度最小的排列 P。
子序列的定义
数列的子序列是指从数列中删除 0 个或多个元素后,按原顺序连接剩下元素得到的数列。例如,(10,30) 是 (10,20,30) 的子序列,但 (20,10) 不是 (10,20,30) 的子序列。
简单路径的定义
在图 G 上,顶点 X,Y 间的顶点序列 v1,v2,…,vk,满足 v1=X,vk=Y,且对于 1≤i≤k−1,vi 和 vi+1 有边相连,这样的序列称为从 X 到 Y 的步行。如果 v1,v2,…,vk 均互不相同,则称为从 X 到 Y 的简单路径(或简称路径)。
输入格式
输入通过标准输入给出,格式如下:
N
u1 v1
u2 v2
⋮
uN−1 vN−1
输出格式
请输出一个使相似度最小的排列 P,用空格分隔。如果有多个解,输出任意一个均可。
输入输出样例
输入#1
3 1 2 2 3
输出#1
3 2 1
输入#2
4 2 1 2 3 2 4
输出#2
3 4 1 2
说明/提示
限制条件
- 2≤N≤5000
- 1≤ui,vi≤N
- 给定的图一定是一棵树
- 输入的所有数均为整数
样例解释 1
输出样例中的排列的相似度为 1。具体计算如下:
- 当 x=(1) 时,y=(P1)=(3),x 和 y 的最长公共子序列长度为 0。
- 当 x=(2) 时,y=(P2)=(2),x 和 y 的最长公共子序列长度为 1。
- 当 x=(3) 时,y=(P3)=(1),x 和 y 的最长公共子序列长度为 0。
- 当 x=(1,2) 时,y=(P1,P2)=(3,2),x 和 y 的最长公共子序列长度为 1。对于反向的 x=(2,1) 也同理。
- 当 x=(2,3) 时,y=(P2,P3)=(2,1),x 和 y 的最长公共子序列长度为 1。对于反向的 x=(3,2) 也同理。
- 当 x=(1,2,3) 时,y=(P1,P2,P3)=(3,2,1),x 和 y 的最长公共子序列长度为 1。对于反向的 x=(3,2,1) 也同理。
可以证明不存在相似度小于等于 0 的排列,因此这就是答案。
样例解释 2
当存在多个使相似度最小的排列时,输出任意一个均可。例如,4 3 2 1 这样的输出也是正确答案。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?