#P2734. 顶点加子树和(Vertex Add Subtree Sum)

顶点加子树和(Vertex Add Subtree Sum)

顶点加子树和(Vertex Add Subtree Sum)

问题描述

给定一棵含 N N 个顶点的有根树,根为顶点 0 0 ;顶点 i i i1 i \ge 1 )的父节点为 pi p_i 。每个顶点 i i 上初始写有值 ai a_i
请按顺序处理以下 Q Q 个查询:

  • 0 u x:将顶点 u u 上的值增加 x x (即 auau+x a_u \leftarrow a_u + x )。
  • 1 u:输出以 u u 为根的子树中所有顶点的值之和。

约束条件

  • 1N,Q500000 1 \leq N, Q \leq 500\,000
  • 0pi<i 0 \leq p_i < i
  • 0ai,x109 0 \leq a_i, x \leq 10^9

输入格式

N QN\ Q
a0 a1  aN1a_0\ a_1\ \cdots\ a_{N-1}
p1 p2  pN1p_1\ p_2\ \cdots\ p_{N-1}
Query0Query_0
Query1Query_1
:
QueryQ1Query_{Q-1}

5 5
1 10 100 1000 10000
0 1 2 2
1 1
1 2
0 1 100000
1 0
1 3
11110
11100
111111
1000