1431 「HAOI2015」树上操作 | OJ题库 | CODE STUDY
CODE STUDY
Programming Practice Platform

欢迎回来

1431

「HAOI2015」树上操作

Medium 时间限制 1000 ms 内存限制 262144 KB
线段树 树链剖分

题目详情

返回题库

题目描述

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

1、把某个节点 x  的点权增加 a  。

2、把某个节点 x  为根的子树中所有点的点权都增加 a  。

3、询问某个节点 x  到根的路径中所有点的点权和。

输入描述

第一行包含两个整数 N,M 。表示点数和操作数。

接下来一行 N  个整数,表示树中节点的初始权值。

接下来 N−1  行每行两个正整数 fr,to , 表示该树中存在一条边 (fr,to ) 。

再接下来 M  行,每行分别表示一次操作。其中第一个数表示该操作的种类(1−3 ) ,之后接这个操作的参数(x  或者 xa )

数据范围与提示:

对于 100% 的数据,$N,M \leq 10^5$,且所有输入数据的绝对值都不会超过$10^6$。

输出描述

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

测试样例

样例支持多行内容展示
样例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
editor.py

提交前会先自动运行样例。只有样例全部通过,才会进入后端正式判题。