#P1892. 树上的距离

树上的距离

问题描述

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

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

输入格式

测试数据第一行为两个整数 nnmm1<n10000,0<m200001 \lt n \le 10000, 0 \lt m \le 20000 )。 nn 表示点数,mm 表示询问次数。

下来 n1n-1 行,每行三个整数 xx yy kk,表示点 xx 和点 yy 之间存在一条边长度为 kk0<k1000 \lt k \le 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