#abc133f. [abc133_f]Colorful Tree

[abc133_f]Colorful Tree

题目描述

给定一个有 NN 个顶点的树,顶点编号为 11NN。树中的第 ii 条边连接了顶点 aia_i 和顶点 bib_i,且该边的颜色和长度分别为 cic_idid_i。这里每条边的颜色由 11N1N-1 的整数表示,相同的整数对应于相同的颜色,不同的整数对应于不同的颜色。

回答以下 QQ 个查询:

  • jj 个查询 (1jQ1 \leq j \leq Q):假设颜色为 xjx_j 的每条边的长度都改变为 yjy_j,求顶点 uju_jvjv_j 之间的距离。(边长的改变不会影响后续的查询。)

约束条件

  • 2N1052 \leq N \leq 10^5
  • 1Q1051 \leq Q \leq 10^5
  • 1ai,biN1 \leq a_i, b_i \leq N
  • 1ciN11 \leq c_i \leq N-1
  • 1di1041 \leq d_i \leq 10^4
  • 1xjN11 \leq x_j \leq N-1
  • 1yj1041 \leq y_j \leq 10^4
  • 1uj<vjN1 \leq u_j < v_j \leq N
  • 给定的图是一棵树。
  • 输入中的所有值都是整数。

输入

从标准输入读入输入数据,数据格式如下:

NN QQ a1a_1 b1b_1 c1c_1 d1d_1 :: aN1a_{N-1} bN1b_{N-1} cN1c_{N-1} dN1d_{N-1} x1x_1 y1y_1 u1u_1 v1v_1 :: xQx_Q yQy_Q uQu_Q vQv_Q

输出

输出 QQ 行。第 jj 行(1jQ1 \leq j \leq Q)应包含第 jj 个查询的答案。

示例输入 1

5 3
1 2 1 10
1 3 2 20
2 4 4 30
5 2 1 40
1 100 1 4
1 100 1 5
3 1000 3 4

示例输出 1

130
200
60

该输入对应的图如下:

Figure

其中,颜色为 11 的边用红色实线表示,颜色为 22 的边用粗绿色线表示,颜色为 44 的边用蓝色虚线表示。

  • 11 个查询:假设颜色为 11 的每条边的长度都改变为 100100,顶点 11 到顶点 44 的距离为 100+30=130100 + 30 = 130
  • 22 个查询:假设颜色为 11 的每条边的长度都改变为 100100,顶点 11 到顶点 55 的距离为 100+100=200100 + 100 = 200
  • 33 个查询:假设颜色为 33 的每条边的长度都改变为 10001000(不存在这样的边),顶点 33 到顶点 44 的距离为 20+10+30=6020 + 10 + 30 = 60。注意,颜色为 11 的边现在恢复了原来的长度。