atcoder#ABC133F. [ABC133F] Colorful Tree

[ABC133F] Colorful Tree

配点 : 600600

問題文

11 から NN までの番号がつけられた NN 個の頂点を持つ木があります。 この木の ii 番目の辺は頂点 aia_i と頂点 bib_i を結び、その色は cic_i、長さは did_i です。 ここで各辺の色は 11 以上 N1N-1 以下の整数で表されており、同じ整数は同じ色に、異なる整数は異なる色に対応します。

以下の QQ 個の問いに答えてください。

  • jj (1jQ1 \leq j \leq Q): 色 xjx_j のすべての辺の長さが yjy_j に変更されたと仮定して、二頂点 uj,vju_j, v_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 への回答を出力すること。

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
130
200
60

この入力中のグラフは次のようなものです。

図

ここで、色 11 の辺は赤い実線で、色 22 の辺は緑の太線で、色 44 の辺は青い破線で示されています。

  • 11: 色 11 のすべての辺の長さが 100100 に変更されたと仮定すると、頂点 1,41, 4 間の距離は 100+30=130100 + 30 = 130 です。
  • 22: 色 11 のすべての辺の長さが 100100 に変更されたと仮定すると、頂点 1,51, 5 間の距離は 100+100=200100 + 100 = 200 です。
  • 33: 色 33 のすべての辺の長さが 10001000 に変更されたと仮定すると (そのような辺は存在しません)、頂点 3,43, 4 間の距離は 20+10+30=6020 + 10 + 30 = 60 です。この問いでは色 11 の辺の長さが元に戻っていることに注意してください。