#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 を加算せよ。ここで、頂点 vv11 代目の頂点と定義され、nn 代目の頂点の直接の子であるような頂点は 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というフォーマットのクエリに対する答えを、クエリが与えられた順にそれぞれ 11 行ずつ出力せよ。


入力例 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 代目の頂点である頂点 2,,42, \\, 433 代目の頂点である頂点 3,5,63, \\ 5, \\ 6 をつなぐ辺の長さに 55 が加算されます。

344f145215af530aec7fe65e98c2ec9c.png

さらに、1 4 1 2というクエリを処理したあとの辺の長さは下図のように変化します。11 代目の頂点である頂点 4422 代目の頂点である頂点 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

加算の対象となる辺が存在するとは限りません。