编程题
### 问题描述 在一座神秘的森林里,生活着 $n$ 个生物,所有生物的关系共同构成一个树状的家族结构,每一个生物都有一个特殊的能量值。森林中的探险者想要研究这些生物的能量分布,因此他经常会询问一个生物及其它的子孙们的能量总和是多少。 你的任务是帮助探险者快速回答这些查询。 ### 输入格式 第一行输入一个正整数 $n$ 表示生物数量。 接下来的 $n$ 行,每行一个整数,表示每个生物的能量值。 接下来的 $n-1$ 行,每行两个整数 $u, v$,$1 \le u, v \le n$ 且 $u \neq v$,表示生物 $u$ 是生物 $v$ 的直系祖先。 接下来一个正整数 $q$,表示探险者的查询数量。 接下来的 $q$ 行,每行一个整数 $x$,表示要查询的生物编号。 ### 输出格式 对于每次查询,输出一个整数,表示该生物及其所有子孙的能量总和。 ### 样例输入 ``` 5 10 20 30 40 50 1 2 1 3 3 4 3 5 2 1 3 ``` ### 样例输出 ``` 150 120 ``` ### 样例说明 在第一个查询中,生物 $1$ 及其所有子孙的能量为: $10 + 20 + 30 + 40 + 50 = 150$。 在第二个查询中,生物 $3$ 及其所有子孙的能量为: $30 + 40 + 50 = 120$。 ### 测评数据规模 $1 \le n, q \le 10^5$,每个生物的能量值在 $1$ 到 $10^5$ 之间。
查看答案
赣ICP备20007335号-2