#P13374. [GCJ 2011 #2] Airport Walkways

    ID: 13185 远端评测题 3000~6000ms 1024MiB 尝试: 0 已通过: 0 难度: 5 上传者: 标签>贪心2011Special JudgeGoogle Code Jam

[GCJ 2011 #2] Airport Walkways

Description

你现在在机场,站在 00 点。通往登机口的走廊长度为 XX 米,你的飞机即将起飞。走廊上有若干条自动步道,每条步道的速度为 wiw_i。当你在步道上行走或奔跑时,你的速度为(你的速度 ++ wiw_i)。步道不会移动它们的位置,只是让你移动得更快。步道之间不会重叠:在走廊的任意一点,至多只有一条步道,但一条步道可以在另一条步道结束的地方开始。

你的正常步行速度为 SS。你担心可能赶不上飞机,因此你可以选择奔跑一段时间——你最多可以以速度 RR 奔跑 tt 秒。你不需要连续奔跑 tt 秒:你可以将这 tt 秒分成任意多个时间段,甚至可以不用完全部时间。

请问,在你合理安排步行和奔跑的情况下,最短需要多少时间才能到达登机口 XX 点?

Input Format

输入的第一行是测试用例数 TT。接下来有 TT 组测试数据。每组测试数据的第一行为五个整数:XX(走廊长度,单位为米)、SS(步行速度,单位为米/秒)、RR(奔跑速度,单位为米/秒)、tt(最大奔跑时间,单位为秒)、NN(步道数量)。

接下来的 NN 行,每行包含三个整数:BiB_iEiE_iwiw_i,分别表示第 ii 条步道的起点、终点(距离起点的米数)以及步道的速度(单位为米/秒)。

Output Format

对于每组测试数据,输出一行,格式为 "Case #xx: yy",其中 xx 是测试编号(从 11 开始),yy 是你到达 XX 点所需的最短时间(单位为秒)。当且仅当你的答案的相对或绝对误差不超过 10610^{-6} 时,才会被判为正确。

3
10 1 4 1 2
4 6 1
6 9 2
12 1 2 4 1
6 12 1
20 1 3 20 5
0 4 5
4 8 4
8 12 3
12 16 2
16 20 1
Case #1: 4.000000
Case #2: 5.500000
Case #3: 3.538095238

Hint

样例解释

在第一个样例中,最优的做法是立即开始奔跑,并奔跑 1 秒。

数据范围

  • 1T401 \leq T \leq 40
  • 1S<R1001 \leq S < R \leq 100
  • 1wi1001 \leq w_i \leq 100
  • 0Bi<EiX0 \leq B_i < E_i \leq X
  • EiBi+1E_i \leq B_{i+1}

小数据集(8 分,测试集 1 - 可见)

  • 1t1001 \leq t \leq 100
  • 1X1001 \leq X \leq 100
  • 1N201 \leq N \leq 20
  • 时间限制:3 秒。

大数据集(10 分,测试集 2 - 隐藏)

  • 1t1061 \leq t \leq 10^6
  • 1X1061 \leq X \leq 10^6
  • 1N10001 \leq N \leq 1000
  • 时间限制:6 秒。

由 ChatGPT 4.1 翻译