AT_gigacode_2019_e.車の乗り継ぎ

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Giga 大道是一条从西向东笔直延伸的道路,总长 LL 米。

E869120 君初始站在 Giga 大道的西端,驾驶一辆可以以每分钟 VSV_S 米的速度行驶,且剩余行驶里程为 DSD_S 米的汽车。

除此之外,这条道路上还有 NN 辆车。第 ii 辆车位于距离西端 XiX_i 米处,可以以每分钟 ViV_i 米的速度行驶,并且剩余行驶里程为 DiD_i 米。

你想要驾驶车辆自西向东行驶,终点是 Giga 大道的东端。

在途中,你可以在车辆停下的地方选择其他车进行换乘,假设换乘时间不计。

那么,E869120 君是否能够到达 Giga 大道的东端?如果不能,请输出 impossible;如果能够,请输出到达东端所需的最短时间(以分钟为单位)。

输出格式

无法到达 Giga 大道的东端时,请输出 impossible。
能够到达时,请输出所需的最短时间(以分钟为单位)。输出可以包含任意小数位,但答案与正确结果的绝对误差或相对误差必须不超过 10−510^{-5},才能被视为正确。

输入输出样例

  • 输入#1

    3 10
    1 5
    3 5 8
    6 10 5
    7 2 7

    输出#1

    4.000000000000000000000
  • 输入#2

    3 10
    1 5
    3 5 8
    6 1 5
    7 2 7

    输出#2

    4.400000000000000355271
  • 输入#3

    2 10
    1 4
    3 1 2
    6 1 10

    输出#3

    impossible
  • 输入#4

    0 1
    99991 1

    输出#4

    0.000010000900081007291
  • 输入#5

    1 100
    5 60
    50 7 90

    输出#5

    17.142857142857142349612
  • 输入#6

    4 1000
    37 426
    725 16 612
    237 19 458
    516 13 509
    408 17 400

    输出#6

    46.861585850556437549130

说明/提示

约束条件

  • 0≤N≤2 0190 \leq N \leq 2\,019
  • 1≤L≤40 075 0171 \leq L \leq 40\,075\,017
  • 1≤X1,X2,…,XN≤L−11 \leq X_1, X_2, \dots, X_N \leq L-1
  • X1,X2,…,XNX_1, X_2, \dots, X_N 互不相同
  • 1≤VS,V1,V2,…,VN≤100 0001 \leq V_S, V_1, V_2, \dots, V_N \leq 100\,000
  • 1≤DS,D1,D2,…,DN≤L1 \leq D_S, D_1, D_2, \dots, D_N \leq L

子任务

问题分为多个子任务,只有在代码通过该子任务的所有测试用例时才能视为完成该子任务。程序得分为完成的子任务分数之和。

  1. (9 分) N=0N = 0
  2. (6 分) N=0N = 0 或 N=1N = 1
  3. (22 分) N≤10N \leq 10
  4. (30 分) VS=1V_S = 1 且对于所有的 ii,Vi=1V_i = 1
  5. (33 分) 无额外约束

子任务 4 的提示

该子任务实质是判定问题,因为所有车辆的速度均为每分钟 1 米,所以如果能够到达东端,最短时间必然是 LL 分钟。思考这个提示有助于解决子任务 4。

示例解释

  1. 通过以下行驶策略,你可以在 4 分钟内到达东端,这是最快的途径:

    • 先使用初始车辆行驶到 3 米处,用时 3/1=33/1 = 3 分钟;
    • 接着换乘第一个车行驶到 6 米处,需要 3/5=0.63/5 = 0.6 分钟;
    • 最后换乘第二个车行驶到东端的 10 米处,还需 4/10=0.44/10 = 0.4 分钟;
    • 总用时为 3+0.6+0.4=43 + 0.6 + 0.4 = 4 分钟。
  2. 按照以下路线,只需 4.4 分钟即可到达终点:

    • 先用原车行驶到 3 米处,用 3/1=33/1 = 3 分钟;
    • 然后直接换乘第一个车到达终点(10 米处),用 7/5=1.47/5 = 1.4 分钟;
    • 总用时为 3+1.4=4.43 + 1.4 = 4.4 分钟。
  3. 这种情况下,无论如何都无法到达东端。并且,这个例子满足了子任务 4 的条件「VS=1V_S = 1,Vi=1V_i = 1」。

  4. 注意答案输出格式为 0.00001000090008,而不是 1.00009e-05。此外,例 4 满足子任务 1 的条件「N=0N = 0」。

  5. 此例中,在 50 米处换车是最佳选择。同时满足子任务 2 的条件「N=0N = 0 或 N=1N = 1」。

  6. 当绝对误差或相对误差不超过 10−510^{-5} 时,46.861585 或 46.86159 的输出皆为正确答案。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页