P0646

[Usaco2008 Oct]牧场行走

[Usaco2008 Oct]牧场行走

有 NN 头奶牛,编号为 11 到 NN;同时有 NN 块牧场,编号也为 11 到 NN。第 ii 头奶牛正在第 ii 块牧场上吃草。

这些牧场由 N−1N-1 条道路连接。奶牛可以沿道路行走,其中第 ii 条道路连接牧场 AiA_i 和牧场 BiB_i,长度为 LiL_i。任意两块牧场之间都可以通过这些道路互相到达,因此所有牧场和道路构成一棵树。

奶牛们经常互相拜访。请计算给定的 QQ 对奶牛之间的行走距离。

输入格式

第一行包含两个以空格分隔的整数 NN 和 QQ,分别表示奶牛及牧场的数量和询问数量。

接下来 N−1N-1 行,第 ii 行包含三个以空格分隔的整数 AiA_i、BiB_i 和 LiL_i,表示牧场 AiA_i 与牧场 BiB_i 之间有一条长度为 LiL_i 的道路。

接下来 QQ 行,每行包含两个以空格分隔的整数 P1P_1 和 P2P_2,表示询问第 P1P_1 头奶牛与第 P2P_2 头奶牛之间的距离。

输出格式

对于每组询问输出一行一个整数,表示对应两头奶牛之间的距离。

样例输入

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

样例输出

2
7

数据范围

  • 2≤N≤10002\le N\le 1000;
  • 1≤Q≤10001\le Q\le 1000;
  • 1≤Li≤100001\le L_i\le 10000。

来源与许可

本题为 USACO 2008 October 试题「牧场行走」,题面与测试数据整理自 BZOJ 1602。

样例 1

输入

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

输出

2
7