#145. DFS 序 2

内存限制:128 MiB 时间限制:1500 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: Planet6174

题目描述

这是一道模板题。

给一棵有根树,这棵树由编号为 1…N1\dots N1NNNN 个结点组成。根结点的编号为 RRR。每个结点都有一个权值,结点 iii 的权值为 viv_ivi
接下来有 MMM 组操作,操作分为两类:

  • 1 a x,表示将结点 aaa 的子树上所有结点的权值增加 xxx
  • 2 a,表示求结点 aaa 的子树上所有结点的权值之和。

输入格式

第一行有三个整数 N,MN,MN,MRRR
第二行有 NNN 个整数,第 iii 个整数表示 viv_ivi
在接下来的 N−1N-1N1 行中,每行两个整数,表示一条边。
在接下来的 MMM 行中,每行一组操作。

输出格式

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

样例

样例输入 1

样例输出 1

样例输入 2

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

样例输出 2

21
33
16
17
27
76
30

数据范围与提示

1⩽N,M⩽106,1\leqslant N, M\leqslant 10^6,1N,M106, 1⩽R⩽N,1\leqslant R\leqslant N,1RN, −106⩽vi,x⩽106-10^6\leqslant v_i, x\leqslant 10^6106vi,x106.