AT_arc175_d.[ARC175D] LIS on Tree 2

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

有一棵包含 NN 个顶点的树,顶点编号为 11 到 NN。树的第 ii 条边连接了顶点 uiu_i 和顶点 viv_i,且为双向边。

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

  • 对于每个顶点 i (1≤i≤N)i\ (1\leq i\leq N),从顶点 11 到顶点 ii 的一条简单路径记为 (v1=1,v2,…,vk=i)(v_1=1,v_2,\ldots,v_k=i),则 (Pv1,Pv2,…,Pvk)(P_{v_1},P_{v_2},\ldots,P_{v_k}) 的最长严格递增子序列的长度记为 LiL_i。定义 f(P)=∑i=1NLif(P)=\sum_{i=1}^N L_i。

给定整数 KK,请判断是否存在一个排列 PP 使得 f(P)=Kf(P)=K,如果存在,请给出一个这样的排列。

最长递增子序列的定义
数列的子序列是指从原数列中删除 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,…,vk)(v_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 KK
u1u_1 v1v_1
⋮\vdots
uN−1u_{N-1} vN−1v_{N-1}

输出格式

如果不存在满足 f(P)=Kf(P)=K 的排列 PP,输出 No。

如果存在满足 f(P)=Kf(P)=K 的排列 PP,输出如下格式:

Yes P1P_1 P2P_2 …\ldots PNP_N

如果有多个满足条件的排列 PP,输出任意一个均可。

输入输出样例

  • 输入#1

    5 8
    1 2
    2 3
    2 4
    4 5

    输出#1

    Yes
    3 2 1 4 5
  • 输入#2

    7 21
    2 1
    7 2
    5 1
    3 7
    2 6
    3 4

    输出#2

    No
  • 输入#3

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

    输出#3

    Yes
    2 1 3 5 6 8 4 7

说明/提示

数据范围

  • 输入的所有数均为整数。
  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 1≤K≤10111\leq K\leq 10^{11}
  • 1≤ui,vi≤N1\leq u_i,v_i\leq N
  • 给定的图保证是一棵树。

样例解释 1

当 P=(3,2,1,4,5)P=(3,2,1,4,5) 时,f(P)f(P) 的计算如下:

  • 从顶点 11 到顶点 11 的简单路径为 (1)(1),(P1)=(3)(P_1)=(3) 的最长递增子序列长度为 11,所以 L1=1L_1=1。
  • 从顶点 11 到顶点 22 的简单路径为 (1,2)(1,2),(P1,P2)=(3,2)(P_1,P_2)=(3,2) 的最长递增子序列长度为 11,所以 L2=1L_2=1。
  • 从顶点 11 到顶点 33 的简单路径为 (1,2,3)(1,2,3),(P1,P2,P3)=(3,2,1)(P_1,P_2,P_3)=(3,2,1) 的最长递增子序列长度为 11,所以 L3=1L_3=1。
  • 从顶点 11 到顶点 44 的简单路径为 (1,2,4)(1,2,4),(P1,P2,P4)=(3,2,4)(P_1,P_2,P_4)=(3,2,4) 的最长递增子序列长度为 22,所以 L4=2L_4=2。
  • 从顶点 11 到顶点 55 的简单路径为 (1,2,4,5)(1,2,4,5),(P1,P2,P4,P5)=(3,2,4,5)(P_1,P_2,P_4,P_5)=(3,2,4,5) 的最长递增子序列长度为 33,所以 L5=3L_5=3。

因此,f(P)=1+1+1+2+3=8f(P)=1+1+1+2+3=8。由此可知,样例输出的 PP 满足 f(P)=8f(P)=8。此外,例如 P=(3,2,4,5,1)P=(3,2,4,5,1) 也满足条件。

样例解释 2

可以证明不存在满足 f(P)=21f(P)=21 的排列 PP。

由 ChatGPT 4.1 翻译

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

首页