#g6007. [GESP6级模拟题]森林统计
[GESP6级模拟题]森林统计
题目背景
护林员记录了一片森林中每棵树的"生长值"( 之间的整数,互不相同),树与树之间通过小路连接成一棵树形结构。
护林员想知道:对于每棵树,在它所在的小森林(即它的子树)中,有多少棵树的生长值比它大。
题目描述
给定一棵 个节点的树,每个节点有一个互不相同的正整数权值 (,所有 构成一个 的排列)。
对于每个节点 ,统计在其子树中(包括节点 自身),权值大于 的节点个数。
输入格式
第一行一个正整数 ,表示节点个数。
第二行 个正整数 ,表示每个节点的权值。
接下来 行,每行两个整数 ,表示节点 和 之间有一条边。
输出格式
输出一行 个整数,第 个整数表示节点 的子树中权值比它大的节点个数。
样例输入
5
3 1 4 5 2
1 2
1 3
3 4
3 5
样例输出
2 0 1 0 0
样例解释
树的形态和各节点权值如下:
1(3)
/ \
2(1) 3(4)
/ \
4(5) 5(2)
- 节点 :子树 中权值大于 的有 →
- 节点 :子树 中权值大于 的有
- 节点 :子树 中权值大于 的有 →
- 节点 :子树 中权值大于 的有
- 节点 :子树 中权值大于 的有
数据范围
, 是 的一个排列。