#453. 树上查询
树上查询
题目描述
给你一棵大小为 n 的有根树。结点编号从 1 到 n,根结点编号为 1。 树上每个结点都有一个权值,结点 i 的权值为 。每个结点的权值各不相同。 对于树上的每个结点 ,你需要回答出以它为根的子树中存在多少个结点的权值比它大。即:存在多少个结点 j 满足 j 是 i 的子孙结点且 。
输入格式
- 第一行,一个整数 n。
- 第二行,n 个整数 ,表示每个结点的权值。
- 接下来 行,每行包含一个整数,依次表示结点 2、3、...、n 的父结点编号。
输出格式
输出共 n 行,每行包含一个整数。其中第 i 行的整数表示以结点 i 为根的子树中存在多少个结点的权值大于 。
样例
3
1 2 3
1
1
2
0
0
5
3 5 2 7 11
1
1
2
3
3
1
1
0
0
说明/提示
数据规模与约定
- 对于 20% 的数据,,。
- 对于 50% 的数据,,。
- 对于 100% 的数据,, 且 各不相同,数据保证这是一棵树。