Problem
【HAOI2015】树上操作
Description
有一棵点数为 的树,以点 为根,且树点有边权。然后有 个
操作,分为三种:
操作 :把某个节点 的点权增加 。
操作 :把某个节点 为根的子树中所有点的点权都增加 。
操作 :询问某个节点 到根的路径中所有点的点权和。
Input
第一行包含两个整数 。表示点数和操作数。接下来一行 个整数,表示树中节点的初始权值。接下来 行每行三个正整数 , 表示该树中存在一条边 。再接下来 行,每行分别表示一次操作。其中第一个数表示该操作的种类 ,之后接这个操作的参数 。
Output
Sample Input
1 | 5 5 |
Sample Output
1 | 6 |
HINT
对于 的数据, ,且所有输入数据的绝对值都不会超过 。
标签:树链剖分
Solution
这是一道序的裸题。可以序树状数组区间修改单点查询(差分)搞定。
但为了写板我码了个树剖。反正是裸题。
不多说。
Code
1 |
|