#P6208. 树上询问

树上询问

题目描述

有一棵 nn 节点的树,根为 11 号节点。每个节点有两个权值 ki,tik_i, t_i,初始值均为 00

给出三种操作:

  1. Add(x,d)\mathrm{Add}( x , d ) 操作:将 xx 到根的路径上所有点的 kiki+dk_i\leftarrow k_i + d
  2. Mul(x,d)\mathrm{Mul}( x , d ) 操作:将 xx 到根的路径上所有点的 titi+d×kit_i\leftarrow t_i + d \times k_i
  3. Query(x)\mathrm{Query}( x ) 操作:询问点 xx 的权值 txt_x

输入格式

第一行一个整数 n n
之后的 n1 n-1 行,每行两个整数 u,vu, v,表示 uuvv 间有一条无向边。
n+1n+1 行一个整数 mm 表示操作个数。
之后的 mm 行,第一个数表示操作类型 opt\mathrm{opt}
opt\mathrm{opt}1122,则接下来有两个数 x,dx, d
opt\mathrm{opt}33,则只有一个数 xx

输出格式

对于每一个询问,输出一行表示询问点的 tit_i 值。

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

45

数据范围与提示

1n,m100000,10d10 1 \leq n, m \leq 100000, -10 \leq d \leq 10
已经按照 LOJ 的运行速度调整时限。