#P2169. 2169 - 树上的距离(distance)

2169 - 树上的距离(distance)

题目描述

给出 nn 个点的一棵树,多次询问两个结点之间的最短距离。(边是双向的,也就是读入的结点没有父子之分)

两个结点之间的距离的定义是,两个结点之间的唯一简单路径边长的和。

输入

测试数据第一行为两个整数 NNMM1<n100001 < n≤10000, 0<m200000 < m≤20000 )。

NN 表示点数, MM 表示询问次数。

下来 n1n-1 行,每行三个整数 x,y,kx,y,k ,表示点 xx 和点 yy 之间存在一条边长度为 kk0<k1000 < k≤100 )。

再接下来 mm 行,每行两个整数 xx yy ,表示询问点 xx 到点 yy 的最短距离。

输出

输出 mm 行,对于每次询问,输出一行。

样例

2 2
1 2 100
1 2
2 1
100
100
3 2
1 2 10
3 1 15
1 2
3 2 
10
25

来源