SZ#TG#139. [洛谷 P3178] [HAOI2015] 树上操作

提交0 通过0
通过率0%
时间限制1000ms
内存限制32MiB
    ID: 13540 传统题 1000ms 32MiB 尝试: 0 已通过: 0 难度: 提高+/省选- 上传者: 标签>信息学奥赛一本通提高篇第4部分 数据结构(提高篇)第5章 树链剖分题源:luogu

题目描述

题目描述

有一棵点数为N的树,以点1为根,且树有点权。然后有M个操作,分为三种:

  1. 把某个节点x的点权增加a。
  2. 把某个节点x为根的子树中所有点的点权都增加a。
  3. 询问某个节点x到根的路径中所有点的点权和。

输入描述

第一行包含两个整数N,M。表示点数和操作数。 接下来一行N个整数,表示树中节点的初始权值。 接下来N-1 行每行两个正整数fr,to\text{fr}, \text{to},表示该树中存在一条边(fr,to)( \text{fr}, \text{to})。 再接下来M行,每行分别表示一次操作。其中第一个数表示该操作的种类(1-3),之后接这个操作的参数(x或者xa)。

输出描述

对于每个询问操作,输出该询问的答案。答案之间用换行隔开。

示例1

输入

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

输出

6
9
13

备注

对于100%100 \%的数据,N,M105N,M \leq10^5,且所有输入数据的绝对值都不会超过10610^6