AT_arc175_d [ARC175D] LIS on Tree 2
题目描述
有一棵包含 $N$ 个顶点的树,顶点编号为 $1$ 到 $N$。树的第 $i$ 条边连接了顶点 $u_i$ 和顶点 $v_i$,且为双向边。
对于 $1$ 到 $N$ 的一个排列 $P=(P_1,\ldots,P_N)$,定义 $f(P)$ 如下:
- 对于每个顶点 $i\ (1\leq i\leq N)$,从顶点 $1$ 到顶点 $i$ 的一条简单路径记为 $(v_1=1,v_2,\ldots,v_k=i)$,则 $(P_{v_1},P_{v_2},\ldots,P_{v_k})$ 的最长严格递增子序列的长度记为 $L_i$。定义 $f(P)=\sum_{i=1}^N L_i$。
给定整数 $K$,请判断是否存在一个排列 $P$ 使得 $f(P)=K$,如果存在,请给出一个这样的排列。
**最长递增子序列的定义**
数列的**子序列**是指从原数列中删除 $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$ $K$
> $u_1$ $v_1$
> $\vdots$
> $u_{N-1}$ $v_{N-1}$
输出格式
如果不存在满足 $f(P)=K$ 的排列 $P$,输出 `No`。
如果存在满足 $f(P)=K$ 的排列 $P$,输出如下格式:
> Yes $P_1$ $P_2$ $\ldots$ $P_N$
如果有多个满足条件的排列 $P$,输出任意一个均可。
说明/提示
### 数据范围
- 输入的所有数均为整数。
- $2\leq N\leq 2\times 10^5$
- $1\leq K\leq 10^{11}$
- $1\leq u_i,v_i\leq N$
- 给定的图保证是一棵树。
### 样例解释 1
当 $P=(3,2,1,4,5)$ 时,$f(P)$ 的计算如下:
- 从顶点 $1$ 到顶点 $1$ 的简单路径为 $(1)$,$(P_1)=(3)$ 的最长递增子序列长度为 $1$,所以 $L_1=1$。
- 从顶点 $1$ 到顶点 $2$ 的简单路径为 $(1,2)$,$(P_1,P_2)=(3,2)$ 的最长递增子序列长度为 $1$,所以 $L_2=1$。
- 从顶点 $1$ 到顶点 $3$ 的简单路径为 $(1,2,3)$,$(P_1,P_2,P_3)=(3,2,1)$ 的最长递增子序列长度为 $1$,所以 $L_3=1$。
- 从顶点 $1$ 到顶点 $4$ 的简单路径为 $(1,2,4)$,$(P_1,P_2,P_4)=(3,2,4)$ 的最长递增子序列长度为 $2$,所以 $L_4=2$。
- 从顶点 $1$ 到顶点 $5$ 的简单路径为 $(1,2,4,5)$,$(P_1,P_2,P_4,P_5)=(3,2,4,5)$ 的最长递增子序列长度为 $3$,所以 $L_5=3$。
因此,$f(P)=1+1+1+2+3=8$。由此可知,样例输出的 $P$ 满足 $f(P)=8$。此外,例如 $P=(3,2,4,5,1)$ 也满足条件。
### 样例解释 2
可以证明不存在满足 $f(P)=21$ 的排列 $P$。
由 ChatGPT 4.1 翻译