‹ 上一题 下一题 ›

g7-07848. 子树加与子树求和 未做

1000 ms 256 MB 测试点 ? 7级·树上问题GESP-7阶梯·拔高子树统计与DFS序

题目描述

小杨负责维护一棵包含 个节点的有根树(根为节点 ),每个节点有一个初始点权 。接下来要处理 次操作,操作分两种:

  • 1 u x:将节点 的子树中所有节点的点权增加 ;
  • 2 u:查询节点 的子树中所有节点的点权之和。
    请对每一次查询输出答案。

输入格式

第一行两个整数 n, q。

第二行 n 个整数 a_1, a_2, ..., a_n。

接下来 n-1 行,每行两个整数 u, v,表示一条树边。

接下来 q 行,每行一次操作,格式如题所述。

输出格式

对于每个 2 操作,输出一行一个整数表示答案。

样例输入

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

样例输出

41
45

样例解释

初始点权为 [1, 2, 3, 4, 5],树边为 1-2、1-3、2-4、2-5,所以子树 2 = {2, 4, 5}。

第一次操作:子树 2 中每个点加 10,点权变为 [1, 12, 3, 14, 15]。

第二次操作:子树 2 求和 = 12 + 14 + 15 = 41。

第三次操作:整棵树求和 = 1 + 12 + 3 + 14 + 15 = 45。

数据范围

  • 1 <= n, q <= 200000
  • |a_i|, |x| <= 10^9
  • 答案可能超过 32 位整数范围,请使用 64 位整数
输入
输出

            
答案