#P10773. [NOISG2021 qualification] Truck

[NOISG2021 qualification] Truck

题目描述

有一棵树,每条边有两个权值 DiD_iTiT_i,给定 QQ 次操作。操作分为两种:

0 x y t:表示把 xxyy 之间的道路的费用改为 tt

1 x y:表示查询 xxyy 的费用。

定义 xxyy 的费用为:给定参数 GG(对每组询问都相同),要求 xx 运送一些价值到 yy,每经过一条权值为 DiD_iTiT_i 的边,会产生运送的价值的 DiD_i 倍的费用,然后运送的价值会减少 TiT_i。在运送到 yy 节点时,若运送到的价值刚好为 GG,产生的费用就为 xxyy 的费用。

你要对每组询问计算费用。

输入格式

11 行两个整数 N,GN,G

2N2 \sim N 行,每行四个整数 Ai,Bi,Di,TiA_i,B_i,D_i,T_i,表示树上 AiA_iBiB_i 有一条边,边权为 DiD_iTiT_i

N+1N+1 行一个整数 QQ,表示操作个数。

下面 QQ 行,每行一个操作,格式见上。

输出格式

若干行,对于每个查询操作,你需要求出费用。每行一个回答。

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

23
18
4 3
1 2 3 0
2 3 1 0
3 4 4 0
1
1 1 4
24

提示

数据范围

本题采用捆绑测试。

Subtask0 为样例。

Subtask1(5 pts)只有查询操作,每个节点度不超过 22,且 Ti=0T_i=0

Subtask2(9 pts)只有查询操作,且 Ti=0T_i = 0

Subtask3(12 pts)只有查询操作,Di=1D_i=1,且所有 TiT_i 相等。

Subtask4(17 pts)只有查询操作,且每个节点度不超过 22

Subtask5(20 pts)每个节点度不超过 22

Subtask6(18 pts)N,Q5000N,Q \leq 5000

Subtask7(19 pts)无特殊限制。

数据保证 2N1052 \leq N \leq 10^51Q1051 \leq Q \leq 10^51Ai,BiN1 \leq A_i,B_i \leq N1Di,Ti,G1091 \leq D_i,T_i,G \leq 10^9