#T2153. 子树查询(Subtree Queries)

子树查询(Subtree Queries)

链接: https://cses.fi/problemset/task/1137

板块: Tree Algorithms

时限: 1.00 s | 内存: 512 MB

题目描述

给定一棵包含 nn 个节点的有根树。节点编号为 1,2,,n1,2,\ldots,n,且节点 11 为根。每个节点有一个权值。

你需要处理以下两类查询:

  1. 将节点 ss 的权值改为 xx
  2. 计算节点 ss 子树中所有节点的权值之和

输入

第一行包含两个整数 nnqq:节点数和查询数。节点编号为 1,2,,n1,2,\ldots,n

下一行有 nn 个整数 v1,v2,,vnv_1,v_2,\ldots,v_n:每个节点的权值。

接下来有 n1n-1 行描述边。每行包含两个整数 aabb:节点 aabb 之间有一条边。

最后有 qq 行描述查询。每行查询形如 "11 ss xx" 或 "22 ss"。

输出

输出每个第 2 类查询的答案。

数据范围

1n,q21051 \le n, q \le 2 \cdot 10^5 1a,b,sn1 \le a,b, s \le n 1vi,x1091 \le v_i, x \le 10^9

样例输入

5 3
4 2 5 2 1
1 2
1 3
3 4
3 5
2 3
1 5 3
2 3

样例输出

8
10