P25261 [AtCoder] LIS on Tree 2
提高
题目描述

Problem Statement

There is a tree with N vertices numbered 1 to N. The i-th edge of the tree connects vertices u_i and v_i bidirectionally.
For $a permutation P=(P_1,\ldots,P_N)$ of $(1,\ldots,N)$, we define f(P) as follows:

  • For each vertex i\ $(1\leq i\leq N)$, let $(v_1=1,v_2,\ldots,v_k=i)$ be the simple path from vertex 1 to vertex i, and let L_i be the length of a longest increasing subsequence of $(P_{v_1},P_{v_2},\ldots,P_{v_k})$. We define $f(P) = \sum_{i=1}^N L_i$.

You are given an integer K. Determine whether there is a permutation P of $(1,\ldots,N)$ such that f(P)=K. If it exists, present one such permutation.

What is a longest increasing subsequence?

A subsequence of a sequence is a sequence obtained by removing zero or more elements from the original sequence and concatenating the remaining elements without changing the order.
For example, (10,30) is a subsequence of (10,20,30), but (20,10) is not.

The longest increasing subsequence of a sequence is the longest strictly increasing subsequence of that sequence.

What is a simple path?
For vertices X and Y in a graph G, a walk from vertex X to vertex Y is a sequence of vertices $(v_1,v_2, \ldots, v_k)$ such that
v_1=X, v_k=Y, and v_i and
v_{i+1} are connected by an edge for all $1\leq i\leq k-1$.
Furthermore, if $v_1,v_2, \ldots, v_k$ are all distinct, it is called a simple path (or simply a path) from vertex X to vertex Y.

Input

The input is given from Standard Input in the following format:
N K
u_1 v_1
$\vdots$
u_{N-1} v_{N-1}

Output

If there is no permutation P such that f(P)=K, print No.
If there is a permutation P such that f(P)=K, print it in the following format:
Yes
$P_1 \ldots P_N$

If multiple permutations P satisfy the condition, any of them will be accepted.

Constraints

  • All input values are integers.
  • $2 \leq N \leq 2\times 10^5$
  • $1\leq K \leq 10^{11}$
  • $1\leq u_i,v_i\leq N$
  • The given graph is a tree.

Sample Input 1

5 8
1 2
2 3
2 4
4 5

Sample Output 1

Yes
3 2 1 4 5

If P=(3,2,1,4,5), then f(P) is determined as follows:

  • The simple path from vertex 1 to vertex 1 is (1), and the length of the longest increasing subsequence of (P_1)=(3) is 1. Thus, L_1 = 1.

  • The simple path from vertex 1 to vertex 2 is (1,2), and the length of the longest increasing subsequence of (P_1,P_2)=(3,2) is 1. Thus, L_2 = 1.

  • The simple path from vertex 1 to vertex 3 is (1,2,3), and the length of the longest increasing subsequence of (P_1,P_2,P_3)=(3,2,1) is 1. Thus, L_3 = 1.

  • The simple path from vertex 1 to vertex 4 is (1,2,4), and the length of the longest increasing subsequence of (P_1,P_2,P_4)=(3,2,4) is 2. Thus, L_4 = 2.

  • The simple path from vertex 1 to vertex 5 is (1,2,4,5), and the length of the longest increasing subsequence of (P_1,P_2,P_4,P_5)=(3,2,4,5) is 3. Thus, L_5 = 3.

  • From the above, f(P)=1+1+1+2+3= 8.

Hence, the permutation P in the sample output satisfies the condition f(P)=8. Besides, P=(3,2,4,5,1) also satisfies the condition, for example.

Sample Input 2

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

Sample Output 2

No

It can be proved that no permutation P satisfies f(P) = 21.

Sample Input 3

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

Sample Output 3

Yes
2 1 3 5 6 8 4 7

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
5 8 1 2 2 3 2 4 4 5
样例输出
Yes 3 2 1 4 5