#P9111. 顶点加路径和(Vertex Add Path Sum)

顶点加路径和(Vertex Add Path Sum)

顶点加路径和(Vertex Add Path Sum)

问题描述

给定一棵含 N N 个顶点的树,边为 (ui,vi) (u_i, v_i) 。每个顶点 i i 上初始写有值 ai a_i
请按顺序处理以下 Q Q 个查询:

  • 0 p x:将顶点 p p 上的值增加 x x (即 apap+x a_p \leftarrow a_p + x )。
  • 1 u v:输出从顶点 u u 到顶点 v v 简单路径上所有顶点的值之和(包含端点 u u v v )。

约束条件

  • 1N,Q5×105 1 \leq N, Q \leq 5 \times 10^5
  • 0ai,x109 0 \leq a_i, x \leq 10^9
  • 0p,u,v<N 0 \leq p, u, v < N

输入格式

N QN\ Q
a0 a1  aN1a_0\ a_1\ \cdots\ a_{N-1}
u0 v0u_0\ v_0
u1 v1u_1\ v_1
:
uN2 vN2u_{N-2}\ v_{N-2}
Query0Query_0
Query1Query_1
:
QueryQ1Query_{Q-1}

5 5
1 10 100 1000 10000
0 1
1 2
2 3
1 4
1 0 3
1 2 4
0 1 100000
1 1 3
1 3 2
1111
10110
101110
1100