题目描述
给定一棵 n 个结点的树,点的编号为 1 到 n,1 号点为根。树上第 i 个点与其父亲的距离为 di。给定一个上限 m,与一个编号为 u 的点,定义 S(u,m) 为 u 的子树中,与 u 距离不超过 m 的点的数量。
对任意点 1≤i≤n,请计算并输出 S(i,u)。
输入格式
- 第一行:单个整数表示 n;
- 第二行:单个整数表示 m;
- 第三行到第 n+1 行:第 i+1 行有两个整数 pi 与 di,
- pi 表示 i 号点的父亲编号
- di 表示 i 号点到父亲的距离
输出格式
- 共 n 行,每行一个整数,其中第 i 行表示 S(i,u)
3
10
1 6
1 5
3
1
1
5
8
1 3
1 5
2 4
2 6
4
3
1
1
1
数据范围
- 对于 30% 的数据, n≤200;
- 对于 60% 的数据, n≤5000;
- 对于 100% 的数据, 1≤n≤200,000
- 1≤m≤1018
- 1≤di≤1,000,000,000
- 1≤pi<i