#ddcc2016finale. [ddcc_2016_final_e]根付き木とクエリ
[ddcc_2016_final_e]根付き木とクエリ
問題文
頂点の根付き木が与えられます。 各頂点には と番号がついており、頂点 はこの根付き木の根です。 番目の辺は頂点 と頂点 をつなぐ、長さ の無向辺です。
個のクエリが与えられるので、順番に処理してください。 クエリには 種類あり、入力形式とクエリの内容は以下のとおりです。
1 v k x
: 頂点 を根とする部分木において、 代目の頂点と 代目の頂点をつなぐ辺それぞれについて、辺の長さに を加算せよ。ここで、頂点 は 代目の頂点と定義され、 代目の頂点の直接の子であるような頂点は 代目の頂点と定義される。2 u v
: 頂点 から頂点 への最短経路長を求めよ。
詳細はサンプル で確認してください。
制約
- 与えられるグラフは木にである
- 種類 のクエリで与えられる頂点 は相異なる
- はいずれも整数
入力
入力は以下の形式で標準入力から与えられる。
出力
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
はじめに下図のようなグラフが与えられます。
1 1 2 5
というクエリを処理したあとの辺の長さは下図のように変化します。 代目の頂点である頂点 と 代目の頂点である頂点 をつなぐ辺の長さに が加算されます。
さらに、1 4 1 2
というクエリを処理したあとの辺の長さは下図のように変化します。 代目の頂点である頂点 と 代目の頂点である頂点 をつなぐ辺の長さに が加算されます。
入力例 2
2
1 2 1
3
1 1 2 10
1 2 2 5
2 1 2
出力例 2
1
加算の対象となる辺が存在するとは限りません。