问题 K: dfs 序

内存限制:128 MB 时间限制:3.000 S
评测方式:文本比较 命题人:
提交:11 解决:5

题目描述

这是一道模板题。 给一棵有根树,这棵树由编号为 $1\dots N$ 的 $N$ 个结点组成。根结点的编号为 $R$。每个结点都有一个权值,结点 $i$ 的权值为 $v_i$。 接下来有 $M$ 组操作,操作分为两类: 

    $\texttt{- 1 a x}$ ,表示将结点 $a$ 的权值增加 $x$;

    $\texttt{- 2 a}$ ,表示求结点 $a$ 的子树上所有结点的权值之和。

输入

第一行有三个整数 $1\leqslant N, M\leqslant 10^6, 1\leqslant R\leqslant N$ 分别代表节点个数,操作组数以及根节点 
第二行有 $N$ 个整数,第 i 个整数表示 $-10^6\leqslant v_i\leqslant 10^6$ 
在接下来的 $N-1$ 行中,每行两个整数,表示一条边 
在接下来的 $M$ 行中,每行一组操作保证 $1 \leq a \le N, 1 \le x \le 10^6$。

输出

对于每组 $\texttt{2 a}$ 操作,输出一个整数,表示「以结点 $a$ 为根的子树」上所有结点的权值之和。

样例输入 复制

10 14 9
12 -6 -4 -3 12 8 9 6 6 2
8 2
2 10
8 6
2 7
7 1
6 3
10 9
2 4
10 5
1 4 -1
2 2
1 7 -1
2 10
1 10 5
2 1
1 7 -5
2 5
1 1 8
2 7
1 8 8
2 2
1 5 5
2 6

样例输出 复制

21
34
12
12
23
31
4