#W1111. 均等查询

均等查询

【题目描述】

给定一棵由 n n 个节点组成的无向树,节点编号从 00n1 n-1 。每条边 (ui,vi)(u_i,v_i) 都有一个权重 wi w_i 1wi261\le w_i \le 26)。
你可以进行任意次操作,每次操作选择树上任意一条边,将其权重改为任意整数。现在有 m m 个查询,每个查询给出两个节点 ai a_i bi b_i 。对于每个查询,你需要回答:最少需要多少次操作,才能使从 ai a_i bi b_i 的唯一简单路径上的所有边的权重相等

注意:每个查询是独立的,即每次查询时树都恢复为初始状态。

【输入格式】

第一行包含两个整数 n,m n, m ,分别表示树的节点数和查询数。
接下来 n1 n-1 行,每行三个整数 u,v,w u, v, w ,表示一条连接 u u v v 的边,权重为 w w
接下来 m m 行,每行两个整数 a,b a, b ,表示一个查询。

【输出格式】

输出 m m 行,每行一个整数,依次为每个查询的答案。

【样例 1】

7 4
0 1 1
1 2 1
2 3 1
3 4 2
4 5 2
5 6 2
0 3
3 6
2 6
0 6
0
0
1
3

【样例 1 解释】

  • 11 个查询:从节点 0 0 到节点 33 的路径上的边权重均为 11,不需要操作,答案为 0 0
  • 22 个查询:从节点 33 到节点 66 的路径上的边权重均为 22,不需要操作,答案为 00
  • 33 个查询:将边 [2,3][2,3] 的权重改为 22,即可使路径上所有边权重均为 22,操作次数为 11
  • 44 个查询:将边 [0,1][1,2][2,3][0,1]、[1,2]、[2,3] 的权重改为 22,操作次数为 33

【样例 2】

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

【样例解释2】

  • 11 个查询:将边 [1,3][1,3] 的权重改为 66,即可使路径上所有边权重均为 66,操作次数为 11
  • 22 个查询:将边 [0,3][0,3][3,1][3,1] 的权重改为 66,操作次数为22
  • 33 个查询:将边 [1,3][1,3][5,2][5,2] 的权重改为 66,操作次数为22
  • 44 个查询:将边 [0,7][0,3][0,7]、[0,3][1,3][1,3] 的权重改为 66,操作次数为 33

【数据规模与约定】

保证 100%100\% 的数据满足:

  • 1n104 1 \le n \le 10^4
  • 1m2×104 1 \le m \le 2 \times 10^4
  • 0u,v<n 0 \le u, v < n
  • 1wi26 1 \le w_i \le 26
  • 输入保证构成一棵树