#1904. LCA与树上倍增-课堂案例2

LCA与树上倍增-课堂案例2

题目描述

《两点最短距离》

给出 n 个点的一棵树,多次询问两点之间的最短距离。

输入格式

第一行为3个整数 n, m, s。n 表示点数,m 表示询问次数,s表示根节点编号; 下来 n-1 行,每行三个整数 x,y,k,表示点 x 和点 y 之间存在一条边长度为 k; 再接下来 m 行,每行两个整数 x,y,表示询问点 x 到点 y 的最短距离。 树中结点编号从 1 到 n。

输出格式

共 m 行,对于每次询问,输出一行询问结果。

样例

输入样例 1

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

输出样例 1

3
4

输入样例 2

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

输出样例 2

9
7
1
0
3

输入样例 3

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

输出样例 3

9
11
5

输入样例 4

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

输出样例 4

4
4
4
4
4
4

输入样例 5

15 7 1
1 2 3
1 3 3
2 4 3
2 5 3
3 6 3
3 7 3
4 8 3
4 9 3
5 10 3
5 11 3
6 12 3
6 13 3
7 14 3
7 15 3
8 15
9 10
4 14
6 7
2 3
11 13
12 15

输出样例 5

18
12
15
6
6
18
12

输入样例 6

12 6 3
3 1 5
3 2 5
3 4 5
4 5 5
4 6 5
5 7 5
5 8 5
6 9 5
6 10 5
7 11 5
8 12 5
1 12
2 11
5 9
7 10
3 8
6 12

输出样例 6

25
25
15
20
15
20

输入样例 7

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

输出样例 7

24
12
28
16
8