#P16633. [GKS 2017 #F] Catch Them All

[GKS 2017 #F] Catch Them All

题目描述

Codejamon Go 发布之后,你和你的许多朋友一样,走上城市街头,尽可能多地捕捉那些毛茸茸的小生物。游戏的目标是前往它们出现的位置,捕捉出现在你城市周围的 Codejamon。你想知道捕捉到所有 Codejamon 需要多长时间!

你的城市包含 NN 个地点,编号为 11NN。你从地点 11 出发。有 MM 条双向道路(编号为 11MM)。第 ii 条道路连接一对不同的地点 (Ui,Vi)(U_i, V_i),沿任一方向行驶都需要 DiD_i 分钟。保证从地点 11 出发,可以沿一条或多条道路到达任何其他地点。

在时间 00 时,一只 Codejamon 会均匀随机地出现在除你当前位置以外的某个地点(时间 00 时你的当前位置是地点 11)。均匀随机意味着它出现在除你当前位置以外的 N1N-1 个地点中每一个的概率恰好为 1/(N1)1/(N-1)。当 Codejamon 出现的一瞬间,你可以立即开始朝它移动。当你到达包含 Codejamon 的地点时,你会立刻抓住它,然后新的 Codejamon 会立刻均匀随机地出现在除你当前位置以外的某个地点,依此类推。注意,任何时刻只有一只 Codejamon 存在,你必须先抓住当前这只,下一只才会出现。

给定你城市的地图,计算捕获 PP 只 Codejamon 的期望时间,假设你总是选择任意两个地点之间最快的路线。

输入格式

输入的第一行包含一个整数 TT:测试用例的数量。接下来有 TT 个测试用例。

每个测试用例的第一行包含三个整数 NNMMPP,分别表示地点的数量、道路的数量和要捕捉的 Codejamon 数量。

然后,每个测试用例接着有 MM 行;第 ii 行包含三个整数 UiU_iViV_iDiD_i,表示第 ii 条道路连接地点 UiU_iViV_i,沿任一方向行驶需要 DiD_i 分钟。

输出格式

对于每个测试用例,输出一行,格式为 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 是捕获 PP 只 Codejamon 的期望时间(以分钟为单位)。如果答案与正确答案的绝对误差或相对误差在 10410^{-4} 以内,则认为正确。

4
5 4 1
1 2 1
2 3 2
1 4 2
4 5 1
2 1 200
1 2 5
5 4 2
1 2 1
2 3 2
1 4 2
4 5 1
3 3 1
1 2 3
1 3 1
2 3 1
Case #1: 2.250000
Case #2: 1000.000000
Case #3: 5.437500
Case #4: 1.500000

提示

在样例 #1 中,我们只需要捕捉一只 Codejamon。它以相等的概率出现在地点 22334455,这些地点离我们的起始地点 11 的距离分别是 11332233。因此,期望时间为 (1+3+2+3)/4=2.25(1 + 3 + 2 + 3) / 4 = 2.25 分钟。

在样例 #2 中,只有两个地点由一条道路连接。每次 Codejamon 出现时,它都会出现在除我们当前位置以外的另一个地点,我们必须沿道路到达那里。因此,我们走那条路 200200 次,每次 55 分钟,总共 10001000 分钟。

样例 #3 使用与样例 #1 相同的地图。两只 Codejamon 出现的位置有 1616 种有序对可能性,计算得出期望为 87/16=5.437587/16 = 5.4375 分钟。

在样例 #4 中,我们需要捕捉的一只 Codejamon 将出现在地点 22 或地点 33。如果它出现在地点 22,我们最好经由 1133 再到 22 的道路,花 22 分钟到达,而不是走更耗时的 1122 道路。因此,期望时间为 (2+1)/2=1.5(2 + 1) / 2 = 1.5 分钟。

限制条件

1T1001 \le T \le 100

N1M(N×(N1))/2N - 1 \le M \le (N \times (N - 1)) / 2

对于所有 ii1Di101 \le D_i \le 10

对于所有 ii1Ui<ViN1 \le U_i < V_i \le N

对于所有 iji \ne j,有 UiUjU_i \ne U_j 和/或 ViVjV_i \ne V_j。(任意两个地点之间至多有一条道路。)

保证从地点 11 出发,可以沿一条或多条道路到达任何其他地点。

小数据集(测试集 1 – 可见)

2N502 \le N \le 50

1P2001 \le P \le 200

大数据集(测试集 2 – 隐藏)

2N1002 \le N \le 100

1P1091 \le P \le 10^9

翻译由 DeepSeek V4 Pro 完成