#ddcc2016finale. [ddcc_2016_final_e]根付き木とクエリ

[ddcc_2016_final_e]根付き木とクエリ

问题描述

给定一棵有 NN 个顶点的根树。每个顶点都有一个编号 1,,2,,...,,N1, \\, 2, \\, ..., \\, N,其中顶点 11 是这棵根树的根节点。第 i(1iN1)i(1 ≦ i ≦ N-1) 条边连接了顶点 AiA_i 和顶点 BiB_i,是一条长度为 CiC_i 的无向边。

给定 QQ 个查询,请按顺序处理这些查询。查询有 22 种类型,并且输入格式和查询内容如下所示:

  • 1 v k x:在以顶点 vv 为根的子树中,对于第 kk 代顶点与第 k+1k+1 代顶点之间的每条边,将其长度增加 xx。其中,顶点 vv 被定义为第 11 代顶点,而顶点的直接子节点是其下一代顶点,即第 n+1n+1 代顶点。
  • 2 u v:求解从顶点 uu 到顶点 vv 的最短路径长度。

请查看示例 11 以获取更多详细信息。

约束条件

  • 1N,,Q1051 ≦ N, \\, Q ≦ 10^{5}
  • 1Ai,,BiN1 ≦ A_i, \\, B_i ≦ N
  • 1Ci1051 ≦ C_i ≦ 10^{5}
  • 1u,,v,,kN1 ≦ u, \\, v, \\, k ≦ N
  • 1x1051 ≦ x ≦ 10^5
  • 给定的图是一棵树
  • 类型为 22 的查询中的顶点 u,,vu, \\, v 是不同的
  • Ci,,xC_i, \\, x 都是整数

输入

输入通过标准输入提供,具体格式如下所示。

NN A1A_1 B1B_1 C1C_1 :: AN1A_{N-1} BN1B_{N-1} CN1C_{N-1} QQ Query1Query_1 :: QueryQQuery_{Q}

输出

对于格式为2 u v的查询,请按顺序逐行输出各个查询的答案。


示例 1

6
1 2 4
1 4 2
4 3 7
4 5 3
2 6 2
5
1 1 2 5
2 3 5
1 4 1 2
2 6 3
2 2 4

输出示例 1

20
27
6

开始时,给出的图如下所示。

14719568c70b794384d9267713fc28f1.png

处理 1 1 2 5 查询后,边的长度会发生如下变化。第 22 代顶点(顶点 2244)与第 33 代顶点(顶点 3,5,63, \\ 5, \\ 6)之间的边的长度都会增加 55

344f145215af530aec7fe65e98c2ec9c.png

再处理 1 4 1 2 查询后,边的长度会发生如下变化。顶点 44 和第 22 代顶点(顶点 3,,63, \\, 6)之间的边的长度都会增加 22

293c37ff6545b9d841490366cc4f1153.png


示例 2

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

输出示例 2

1

并不是所有边都会被增加。