[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 $ を通過する必要があります。