#9921. 主下标

    ID: 9921 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>长链剖分DSU on Tree深度数组子树深度统计主下标线性合并

主下标

题目描述

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

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

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

顶点 xx 的 深度数组的 主下标(或简称为顶点 xx 的 主下标)是一个下标 jj,满足:

  • 对于每个 k<jk < jdx,k<dx,jd_{x, k} < d_{x, j}
  • 对于每个 k>jk > jdx,kdx,jd_{x, k} \le d_{x, j}

计算树中每个顶点的 主下标。

输入格式

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

接下来 n1n - 1 行,每行包含两个整数 xxyy (1x,yn1 \le x, y \le n, xyx \ne y)。该行表示树的一条边。

保证这些边形成一棵树。

输出格式

输出 nn 个数字。第 ii 个数字应等于顶点 ii 的 主下标。

4
1 2
2 3
2 4
2
1
0
0

样例分析

对于顶点 11 来说,d(1,0)=1,d(1,1)=1,(d1,2)=2d(1,0)=1,d(1,1)=1,(d1,2)=2,所以输出 22

对于顶点 22 来说,d(1,0)=1,d(1,1)=2d(1,0)=1,d(1,1)=2,所以输出 11

对于顶点 33 来说,d(1,0)=1d(1,0)=1,所以输出 00

对于顶点 44 来说,d(1,0)=1d(1,0)=1,所以输出 00

数据范围与提示

对于 100%100 \% 的数据,保证 1n1061 \le n \le 10^6