#9817. 传播树

    ID: 9817 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>树状数组DFS序树上差分深度奇偶

传播树

题目描述

Iahub\text{Iahub} 喜欢树。最近他发现了一种有趣的树,名为传播树。这棵树由编号从 11nnnn 个节点组成,每个节点 ii 具有初始值 aia_i。树的根节点是节点 11

这棵树有一个特殊的属性:当将值 valval 添加到节点 ii 的值时,值 val-val 将添加到节点 ii 的所有子节点的值中。请注意,当你向节点 ii 的子节点添加值 val-val 时,你也会向节点 ii 的所有子节点的所有子节点中添加 (val)-(-val) ,以此类推。

这棵树支持两种类型的操作:

  • 11 xx valval — 将 valval 添加到节点 xx 的值;
  • 22 xx — 输出节点 xx 的当前值。

为了帮助 Iahub\text{Iahub} 更好地理解这棵树,你必须回答前述类型的 mm 个查询。

输入格式

第一行包含两个整数 nnmm

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n

接下来的 n1n-1 行中,每行包含两个整数 viv_iuiu_i (1vi,uin1 \le v_i,u_i \le n),表示节点 viv_i 和节点 uiu_i 之间有一条边。

接下来的 mm 行中,每行包含一个按上述格式描述的查询。

保证对于所有查询,以下约束条件成立:1xn,1val10001 \le x \le n,1 \le val \le 1000

输出格式

对于每个类型为 22 的查询(输出节点 xx 的值),你必须将查询的答案单独输出在一行上。必须按照输入中给定的顺序回答查询。

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

样例分析

节点的值在开始时为 [1,2,1,1,2][1,2,1,1,2]

然后将值 33 添加到节点 22。它传播,值 3-3 被添加到它的子节点,节点 44 和节点 55 。然后它无法再传播。因此,节点的值为 [1,5,1,2,1][1,5,1,-2,-1]

然后将值 22 添加到节点 11 。它传播,值 2-2 被添加到它的子节点,节点 22 和节点 33 。从节点 22 再次传播,将值 22 添加到它的子节点,节点 44 和节点 55。节点 33 没有子节点,所以它无法从那里传播。节点的值为 [3,3,1,0,1][3,3,-1,0,1]

数据范围与提示

对于 100%100\% 的数据:1n,m2×1051 \le n,m \le 2 \times 10^51ai10001 \le a_i \le 1000