AT_arc156_c.[ARC156C] Tree and LCS

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一棵编号为 11 到 NN 的树 TT。TT 的第 ii 条边(1≤i≤N−11\leq i\leq N-1)连接了顶点 uiu_i 和顶点 viv_i。

利用 TT,我们定义排列 P=(P1,P2,…,PN)P=(P_1,P_2,\ldots,P_N)(11 到 NN 的一个排列)的相似度如下:

  • 对于 TT 上任意的简单路径 x=(x1,x2,…,xk)x=(x_1,x_2,\ldots,x_k),令 y=(Px1,Px2,…,Pxk)y=(P_{x_1},P_{x_2},\ldots,P_{x_k})。此时,xx 和 yy 的最长公共子序列的最大长度即为相似度。

请构造一个使相似度最小的排列 PP。

子序列的定义
数列的子序列是指从数列中删除 00 个或多个元素后,按原顺序连接剩下元素得到的数列。例如,(10,30)(10,30) 是 (10,20,30)(10,20,30) 的子序列,但 (20,10)(20,10) 不是 (10,20,30)(10,20,30) 的子序列。

简单路径的定义
在图 GG 上,顶点 X,YX,Y 间的顶点序列 v1,v2,…,vkv_1,v_2,\ldots,v_k,满足 v1=Xv_1=X,vk=Yv_k=Y,且对于 1≤i≤k−11\leq i\leq k-1,viv_i 和 vi+1v_{i+1} 有边相连,这样的序列称为从 XX 到 YY 的步行。如果 v1,v2,…,vkv_1,v_2,\ldots,v_k 均互不相同,则称为从 XX 到 YY 的简单路径(或简称路径)。

输入格式

输入通过标准输入给出,格式如下:

NN
u1u_1 v1v_1
u2u_2 v2v_2
⋮\vdots
uN−1u_{N-1} vN−1v_{N-1}

输出格式

请输出一个使相似度最小的排列 PP,用空格分隔。如果有多个解,输出任意一个均可。

输入输出样例

  • 输入#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≤50002\leq N\leq 5000
  • 1≤ui,vi≤N1\leq u_i,v_i\leq N
  • 给定的图一定是一棵树
  • 输入的所有数均为整数

样例解释 1

输出样例中的排列的相似度为 11。具体计算如下:

  • 当 x=(1)x=(1) 时,y=(P1)=(3)y=(P_1)=(3),xx 和 yy 的最长公共子序列长度为 00。
  • 当 x=(2)x=(2) 时,y=(P2)=(2)y=(P_2)=(2),xx 和 yy 的最长公共子序列长度为 11。
  • 当 x=(3)x=(3) 时,y=(P3)=(1)y=(P_3)=(1),xx 和 yy 的最长公共子序列长度为 00。
  • 当 x=(1,2)x=(1,2) 时,y=(P1,P2)=(3,2)y=(P_1,P_2)=(3,2),xx 和 yy 的最长公共子序列长度为 11。对于反向的 x=(2,1)x=(2,1) 也同理。
  • 当 x=(2,3)x=(2,3) 时,y=(P2,P3)=(2,1)y=(P_2,P_3)=(2,1),xx 和 yy 的最长公共子序列长度为 11。对于反向的 x=(3,2)x=(3,2) 也同理。
  • 当 x=(1,2,3)x=(1,2,3) 时,y=(P1,P2,P3)=(3,2,1)y=(P_1,P_2,P_3)=(3,2,1),xx 和 yy 的最长公共子序列长度为 11。对于反向的 x=(3,2,1)x=(3,2,1) 也同理。

可以证明不存在相似度小于等于 00 的排列,因此这就是答案。

样例解释 2

当存在多个使相似度最小的排列时,输出任意一个均可。例如,4 3 2 1 这样的输出也是正确答案。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页