#P16844. [GKS 2021 #B] Truck Delivery

    ID: 19171 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>线段树2021树链剖分可持久化线段树Google Kick Start

[GKS 2021 #B] Truck Delivery

题目描述

Charles 是 Googleland 城市的一名卡车司机。Googleland 的结构是一棵有 NN 个节点的树,每个节点代表一个城市,每条边代表两个城市之间的道路。城市编号为 11NN。Googleland 的首都是城市 11。每天,Charles 在城市 CC 装载重量为 WW 的货物,并希望沿城市间的唯一简单路径将货物运送到城市 11。每条道路 ii 设有一个通行费,如果货物重量大于或等于载重限制 LiL_i,则需支付金额 AiA_i

Charles 工作 QQ 天,每天给出起点城市 CC 和货物重量 WW。对于每天,求 Charles 当天支付的所有通行费的最大公约数。如果当天无需支付任何通行费,则答案为 00

输入格式

输入的第一行给出测试用例的数量 TT。接下来有 TT 个测试用例。

每个测试用例的第一行包含两个整数 NNQQ

接下来的 N1N-1 行描述道路。其中第 ii 行包含四个空格分隔的整数 XXYYLiL_iAiA_i,表示连接城市 XXYY 的道路,其载重限制为 LiL_i,通行费为 AiA_i

接下来的 QQ 行描述查询。其中第 jj 行包含两个空格分隔的整数 CjC_jWjW_j,表示第 jj 天的起点城市和货物重量。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是按顺序给出的 QQ 天答案列表,用空格分隔。

2
7 5
2 1 2 4
2 3 7 8
3 4 6 2
5 3 9 9
2 6 1 5
7 1 5 7
5 10
5 8
4 1
6 1
7 6
3 2
1 2 2 10
3 2 3 5
3 2
3 3
Case #1: 1 4 0 5 7
Case #2: 10 5

提示

在样例 #1 中:

  • 第一天,Charles 需要支付道路 (5,3)(5, 3)(3,2)(3, 2)(2,1)(2, 1) 的通行费。答案为 gcd(9,8,4)=1\gcd(9, 8, 4) = 1
  • 第二天,Charles 需要支付道路 (3,2)(3, 2)(2,1)(2, 1) 的通行费。答案为 gcd(8,4)=4\gcd(8, 4) = 4
  • 第三天,Charles 无需支付任何通行费,因此答案为 00

在样例 #2 中:

  • 第一天,Charles 需要支付道路 (2,1)(2, 1) 的通行费。答案为 1010
  • 第二天,Charles 需要支付道路 (3,2)(3, 2)(2,1)(2, 1) 的通行费。答案为 gcd(5,10)=5\gcd(5, 10) = 5

限制条件

1T1001 \le T \le 100

对于所有 ii1Li2×1051 \le L_i \le 2 \times 10^5

对于所有 ii1Ai10181 \le A_i \le 10^{18}

所有 LiL_i 互不相同。

对于所有 jj2CjN2 \le C_j \le N

对于所有 jj1Wj2×1051 \le W_j \le 2 \times 10^5

保证给定的道路构成一棵树。

测试集 1

2N10002 \le N \le 1000

1Q10001 \le Q \le 1000

测试集 2

最多 2020 个测试用例满足 2N5×1042 \le N \le 5 \times 10^41Q1051 \le Q \le 10^5

其余测试用例满足 2N10002 \le N \le 10001Q10001 \le Q \le 1000

翻译由 DeepSeek V4 Pro 完成