#P13322. [GCJ 2012 #1C] Out of Gas

    ID: 15187 远端评测题 12000~24000ms 1024MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>数学2012二分Special JudgeGoogle Code Jam

[GCJ 2012 #1C] Out of Gas

题目描述

你的汽车没油了,你想尽快回家!幸运的是,你的家在山脚下,而你(和你的车)在山顶。不幸的是,你前面还有一辆车,你无法超过它。幸运的是,你的刹车很好用,而且非常强大。

你从山顶以 0 m/s0\,\text{m/s} 的速度、在 00 秒时刻出发。重力会以恒定加速度将你的车向山下拉。你可以随时使用刹车来减慢速度,或者临时减小加速度,幅度不限。

如果你以最优方式使用刹车,你最快多久能到家?

输入格式

输入的第一行为测试用例数 TT。接下来有 TT 组测试数据。每组测试数据的第一行包含三个用空格分隔的数:一个实数 DD,表示你到家的距离(米);两个整数 NN 和 AA。DD 保证有且仅有 66 位小数。

接下来 NN 行,每行包含两个用空格分隔的实数:第 ii 个为时间 tit_i(秒),第 ii 个为位置 xix_i(米)。tit_i 和 xix_i 都保证有且仅有 66 位小数。

再接下来一行,包含 AA 个用空格分隔的实数 aia_i,表示加速度(m/s2\text{m/s}^2),每个加速度保证有且仅有 22 位小数。

前车的位置由 (ti,xi)(t_i, x_i) 对给出。前车在 tit_i 秒时位于山顶下方 xix_i 米处(即你的起点)。前车在 tit_i 到 ti+1t_{i+1} 之间以恒定速度行驶。所有 tit_i 和 xix_i 均严格递增,t0=0t_0 = 0。

例如,如果 t5=10t_5=10,x5=20x_5=20,t6=20t_6=20,x6=40x_6=40,那么开始后 1010 秒前车在 2020 米处,1515 秒时在 3030 米处,2020 秒时在 4040 米处。

输出格式

对于每个测试用例,输出一行 "Case #cc:",其中 cc 为测试用例编号(从 11 开始)。然后输出 AA 行,第 ii 行为你在重力加速度为 aia_i 时,且以最优方式使用刹车,最快到家的秒数。答案的绝对或相对误差不超过 10−610^{-6} 即视为正确。输出中不应有空行。

3
1000.000000 2 3
0.000000 20.500000
25.000000 1000.000000
1.00 5.00 9.81
50.000000 2 2
0.000000 0.000000
100000.000000 100.000000
1.00 1.01
10000.000000 3 1
0.000000 0.000000
10000.000000 0.100000
10000.100000 100000.000000
1.00
Case #1:
44.7213595
25.000000
25.0
Case #2:
50000.0
50000.0
Case #3:
10140.974143

提示

说明

位置与加速度:一个以恒定加速度 a m/s2a\,\text{m/s}^2、初速度 v0 m/sv_0\,\text{m/s} 的物体,在 tt 秒后将移动 v0⋅t+0.5⋅a⋅t2v_0 \cdot t + 0.5 \cdot a \cdot t^2 米。

坡面距离:所有距离和加速度均以山坡直线方向为准,不是水平距离。例如,你以 2 m/s22\,\text{m/s}^2 的加速度、初速度 0 m/s0\,\text{m/s},前车静止在 x=1x=1,那么你正好 11 秒能追到前车。

前车:你永远不能超过前车,也就是说,任何时刻你的下坡距离都不能大于前车,可以相等。两车都视为质点。

输出数值:你可以输出任意多的小数位。我们会用 10−610^{-6} 作为误差阈值进行比较。因此 2525、25.025.0、25.00000025.000000 都被视为相同。小数点后的尾随 00 不影响判分。

限制条件

  • 1≤T≤201 \leq T \leq 20
  • 1.0≤D≤1041.0 \leq D \leq 10^4
  • 1.0≤ai≤9.811.0 \leq a_i \leq 9.81
  • 0.0≤ti≤1050.0 \leq t_i \leq 10^5
  • 0.0≤xi≤1050.0 \leq x_i \leq 10^5
  • ti<ti+1t_i < t_{i+1}
  • xi<xi+1x_i < x_{i+1}
  • t0=0t_0 = 0
  • xN−1≥Dx_{N-1} \geq D

测试集 1(10 分,结果可见)

  • 时间限制:60 12 秒
  • 1≤N≤21 \leq N \leq 2
  • 1≤A≤101 \leq A \leq 10

测试集 2(27 分,结果隐藏)

  • 时间限制:120 24 秒
  • 1≤N≤20001 \leq N \leq 2000
  • 1≤A≤2501 \leq A \leq 250

翻译由 ChatGPT-4.1 完成。