#P20. 显性索引

显性索引

题目描述

给定一棵包含 nn 个顶点的有根无向树,顶点 11 为根节点。

我们定义顶点 xx 的深度数组为一个无限序列 [dx,0,dx,1,dx,2,][d_{x, 0}, d_{x, 1}, d_{x, 2}, \dots],其中 dx,id_{x, i} 表示满足以下两个条件的顶点 yy 的数量:

  1. xxyy 的祖先;
  2. xxyy 的简单路径恰好经过 ii 条边。

顶点 xx 的深度数组的显性索引(简称为顶点 xx 的显性索引)是一个满足以下条件的索引 jj

  1. 对于所有 k<jk < j,有 dx,k<dx,jd_{x, k} < d_{x, j}
  2. 对于所有 k>jk > j,有 dx,kdx,jd_{x, k} \le d_{x, j}

要求计算树中每个顶点的显性索引。

输入格式

第一行包含一个整数 nn1n1061 \le n \le 10^6)——树中顶点的数量。

接下来的 n1n-1 行,每行包含两个整数 xxyy1x,yn1 \le x, y \le nxyx \ne y),表示树中的一条边。

保证这些边构成一棵树。

输出格式

输出 nn 个数字,第 ii 个数字表示顶点 ii 的显性索引。

4
1 2
2 3
3 4
0
0
0
0
4
1 2
1 3
1 4
1
0
0
0
4
1 2
2 3
2 4
2
1
0
0