codeforces#P1891F. A Growing Tree

A Growing Tree

以下题面由 AI 翻译。

题目描述

给定一棵根为顶点 11 的有根树,初始时仅有一个顶点。每个顶点的数值初始为 00。处理 qq 个两种类型的查询:

  • 类型1:向顶点 vv 添加一个编号为 sz+1sz + 1 的子节点,其中 szsz 是当前树的大小。新顶点的数值为 00
  • 类型2:将 xx 加到顶点 vv 的子树中所有顶点的数值上。

在处理完所有查询后,输出最终树中每个顶点的数值。

输入格式

第一行包含一个整数 TT (1T1041 \leq T \leq 10^4) —— 测试用例的数量。每个测试用例的描述如下:

每个测试用例的第一行包含一个整数 qq (1q51051 \leq q \leq 5 \cdot 10^5) —— 查询的数量。

接下来的 qq 行可能为以下两种类型之一:

  • 类型1:第 ii 行包含两个整数 tit_i (ti=1t_i = 1)、viv_i。需向顶点 viv_i 添加一个编号为 sz+1sz + 1 的子节点,其中 szsz 是当前树的大小。保证 1visz1 \leq v_i \leq sz
  • 类型2:第 ii 行包含三个整数 tit_i (ti=2t_i = 2)、viv_ixix_i (109xi109-10^9 \leq x_i \leq 10^9)。需将 xix_i 加到顶点 viv_i 的子树中所有顶点的数值上。保证 1visz1 \leq v_i \leq szszsz 为当前树的大小)。

保证所有测试用例的 qq 总和不超过 51055 \cdot 10^5

输出格式

对于每个测试用例,输出最终树中每个顶点的数值。

样例数据

3
9
2 1 3
1 1
2 2 1
1 1
2 3 2
1 3
2 1 4
1 3
2 3 2
5
2 1 1
1 1
2 1 -1
1 1
2 1 1
5
1 1
1 1
2 1 1
2 1 3
2 2 10
7 5 8 6 2 
1 0 1 
4 14 4

提示

对于第一个样例,最终树的结构及数值分配如下图所示:

最终树的结构及数值分配