#P2337. [ABC133F] Colorful Tree

    ID: 4685 传统题 2000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>数据结构线段树树状数组树结构树链剖分ATCoder

[ABC133F] Colorful Tree

题目描述

有一个 NN 个节点的树,每条边有颜色、边权。

您需要处理 QQ 个询问,每个询问给出 xi,yi,ui,vix_i,y_i,u_i,v_i,您需要求出假定所有颜色为 xix_i 的边的边权全部变成 yiy_i 后,uiu_iviv_i 之间的距离。询问之间互相独立。

输入格式

第一行两个整数 N,QN, Q

接下来 N1N - 1 行,每行四个整数 ai,bi,ci,dia_i, b_i, c_i, d_i,表示aia_ibib_i 之间存在一条边,颜色为 cic_i,边权为 did_i

接下来 QQ 行,每行四个整数 xi,yi,ui,vix_i, y_i, u_i, v_i,含义如题所述。

2N1052 \le N \le 10^51Q1051 \le Q \le 10^51di,yi1041 \le d_i, y_i \le 10^41ci,xiN11 \le c_i, x_i \le N - 1

输出格式

QQ 行,每个询问输出一行表示答案。

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 的边的边权改成 100100 之后,11 号点到 44 号点之间的距离则变成 100+30=130100 + 30 = 130
  • 第二个询问:颜色 11 的边的边权改成 100100 之后,11 号点到 55 号点的距离则变成 100+100=200100 + 100 = 200
  • 第三个询问:颜色 33 的边的边权改成 10001000 之后,这棵树没有什么变化,因为没有颜色为 33 的边,所以 33 号点到 44 号点之间的距离为 20+10+20=6020 + 10 + 20 = 60