[ABC070D] Transit Tree Path

题意翻译

给出一棵有N个结点的树,给出Q个询问,求结点xj过结点K到节点yj的最短距离

题目描述

[problemUrl]: https://atcoder.jp/contests/abc070/tasks/abc070_d $ N $ 頂点の木が与えられます。 木とはグラフの一種であり、頂点の数を $ N $ とすると、辺の数が $ N-1 $ 本である閉路のない連結グラフです。 $ i(1≦i≦N-1) $ 番目の辺は 頂点 $ a_i $ と 頂点 $ b_i $ を距離 $ c_i $ で結びます。 また、$ Q $ 個の質問クエリと整数 $ K $ が与えられます。 - $ j(1≦j≦Q) $ 番目の質問クエリでは、頂点 $ x_j $ から 頂点 $ K $ を経由しつつ、頂点 $ y_j $ まで移動する場合の最短経路の距離を求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ a_1 $ $ b_1 $ $ c_1 $ $ : $ $ a_{N-1} $ $ b_{N-1} $ $ c_{N-1} $ $ Q $ $ K $ $ x_1 $ $ y_1 $ $ : $ $ x_{Q} $ $ y_{Q} $

输出格式


質問クエリの解答を $ Q $ 行出力せよ。 $ j(1≦j≦Q) $ 行目には、$ j $ 番目のクエリの答えを出力せよ。

输入输出样例

输入样例 #1

5
1 2 1
1 3 1
2 4 1
3 5 1
3 1
2 4
2 3
4 5

输出样例 #1

3
2
4

输入样例 #2

7
1 2 1
1 3 3
1 4 5
1 5 7
1 6 9
1 7 11
3 2
1 3
4 5
6 7

输出样例 #2

5
14
22

输入样例 #3

10
1 2 1000000000
2 3 1000000000
3 4 1000000000
4 5 1000000000
5 6 1000000000
6 7 1000000000
7 8 1000000000
8 9 1000000000
9 10 1000000000
1 1
9 10

输出样例 #3

17000000000

说明

### 制約 - $ 3≦N≦10^5 $ - $ 1≦a_i,b_i≦N\ (1≦i≦N-1) $ - $ 1≦c_i≦10^9\ (1≦i≦N-1) $ - 与えられるグラフは木である。 - $ 1≦Q≦10^5 $ - $ 1≦K≦N $ - $ 1≦x_j,y_j≦N\ (1≦j≦Q) $ - $ x_j≠y_j\ (1≦j≦Q) $ - $ x_j≠K,y_j≠K\ (1≦j≦Q) $ ### Sample Explanation 1 与えられた $ 3 $ つの質問クエリに対する最短経路は以下の通りです。 - $ 1 $ つ目の質問クエリ: 頂点 $ 2 $ → 頂点 $ 1 $ → 頂点 $ 2 $ → 頂点 $ 4 $ : 距離 $ 1+1+1=3 $ - $ 2 $ つ目の質問クエリ: 頂点 $ 2 $ → 頂点 $ 1 $ → 頂点 $ 3 $ : 距離 $ 1+1=2 $ - $ 3 $ つ目の質問クエリ: 頂点 $ 4 $ → 頂点 $ 2 $ → 頂点 $ 1 $ → 頂点 $ 3 $ → 頂点 $ 5 $ : 距離 $ 1+1+1+1=4 $ ### Sample Explanation 2 質問クエリに対する最短経路は、必ず頂点 $ K=2 $ を通過する必要があります。