#76. DFS 序 3,树上差分 1

DFS 序 3,树上差分 1

题目描述

这是一道模板题。

不保证无快读的程序能过。请务必使用快读。

给一棵有根树,这棵树由编号为 1N1\dots NNN 个结点组成。根结点的编号为 RR。每个结点都有一个权值,结点 ii 的权值为 viv_i
接下来有 MM 组操作,操作分为三类:

  • 1 a b x,表示将「结点 aa 到结点 bb 的简单路径」上所有结点的权值都增加 xx
  • 2 a,表示求结点 aa 的权值。
  • 3 a,表示求 aa 的子树上所有结点的权值之和。

输入格式

第一行有三个整数 N,MN,MRR
第二行有 NN 个整数,第 ii 个整数表示 viv_i
在接下来的 N1N-1 行中,每行两个整数,表示一条边。
在接下来的 MM 行中,每行一组操作。

输出格式

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

样例 1

10 15 3
4 8 -2 -4 -7 -7 -9 5 2 5
3 9
3 4
4 5
4 8
8 7
3 6
8 2
9 10
2 1
2 5
1 4 7 3
1 7 2 6
1 6 7 -7
2 1
1 10 10 -9
2 4
1 2 9 -8
2 6
1 10 5 -2
1 4 4 6
1 6 1 3
1 1 10 2
1 9 2 0
2 7
-7
4
-8
-14
-7
10 17 3
5 1 -7 -9 -5 3 -7 -5 3 3
1 8
8 7
7 6
8 3
6 10
7 2
6 9
1 4
6 5
2 9
1 10 4 -2
2 8
1 1 10 -2
3 5
1 10 6 -3
3 1
1 6 5 9
2 8
1 4 5 1
2 10
1 2 5 6
1 2 6 0
1 2 7 -5
1 4 9 6
1 10 1 0
3 2
3
-7
-5
-10
-9
-4
2

数据范围与提示

40%40\% 的数据不含操作 3。
对于所有数据,1N,M106,1\leqslant N, M\leqslant 10^6, 1RN,1\leqslant R\leqslant N, 106vi,x106-10^6\leqslant v_i, x\leqslant 10^6.