#YHCSPJMN150003. 权值统计

权值统计

权值统计

题目背景

在育华学校的算法实践课程中,T2之王需要解决一个关于树结构的统计问题。给定一棵树,每个节点有唯一权值,需要统计每个节点的所有子孙节点中权值大于该节点权值的数量。

题目描述

有一棵树包含 N N 个节点(编号 1N 1 \sim N )和 N1 N - 1 条边,编号为 1 的节点是树根。每个节点 i i 有对应的权值 Vi V_i

对于每个节点 i i ,需要计算其所有子孙节点(即该节点的子树中除自身外的节点)中,权值大于 Vi V_i 的节点总数。

输入格式

  1. 第 1 行:整数 N N ,表示树的节点数量;
  2. 接下来 N N 行:每行一个整数 V1VN V_1 \sim V_N ,依次对应编号为 1 到 N N 的节点的权值(所有权值互不相等);
  3. 接下来 N1 N - 1 行:每行一个整数 F2FN F_2 \sim F_N ,依次对应编号为 2 到 N N 的节点的父节点编号(编号为 1 的节点是树根,无需输入其父节点)。

输出格式

输出 N N 行,第 i i 行输出编号为 i i 的节点的所有子孙节点中权值大于 Vi V_i 的节点总数。

样例

样例输入 1

5
6
2
9
14
7
1
3
4

样例输出 1

3
0
1
0
0

样例解释 1

树的结构及各节点权值如下:

  • 节点 1(权值 6)的子孙节点:2(2)、3(9)、4(14)、5(7)。其中权值大于 6 的有 3、4、5,共 3 个;
  • 节点 2(权值 2)无子孙节点,输出 0;
  • 节点 3(权值 9)的子孙节点:4(14)、5(7)。其中权值大于 9 的只有 4,共 1 个;
  • 节点 4(权值 14)无子孙节点,输出 0;
  • 节点 5(权值 7)无子孙节点,输出 0。

数据规模与测试点(20 个测试点)

测试点编号 N N \leq 特殊条件
#1~#2 20 树退化成链
#3~#4
#5~#6 104 10^4 树退化成链
#7~#8
#9~#10 105 10^5 树退化成链
#11~#12
#13~#14
#15~#16
#17~#18
#19~#20