0 #loj145. *【树上点差分】树结构区间修改、区间求和[LOJ145]DFS序2

*【树上点差分】树结构区间修改、区间求和[LOJ145]DFS序2

[AdditionalFile145.zip](file://AdditionalFile145.zip?type=additional_file)

【题意】前置题1107

给一棵有 NN 个节点的有根树(根结点的编号为 RR)。每个结点权值为 viv_i

下来有 MM 组操作,操作分为两类:

1 x k,表示将结点 x 的子树上所有结点的权值增加 k;

2 x,表示求结点 x 的子树上所有结点的权值之和。

【输入格式】

第一行三个整数 N M R(1RN,M106N \ M \ R (1 \le R \le N, M \le 10^6)。
第二行 NN 个整数 viv_i
下来的 N1N-1 行中,每行两个整数,表示一条边。
下来的 MM 行中,每行一组操作。
106vi,k106-10^6\leqslant v_i, k\leqslant 10^6

【输出格式】

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

【样例输入】

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
33
16
17
27
76
30