QOJ.ac

QOJ

実行時間制限: 8 s - 16 s メモリ制限: 1024 MB 満点: 37

#5891. 燃油耗尽

統計

题目描述

你的车没油了,你想尽快回到家!幸运的是,你的家在山脚下,而你(在车里)在山顶。不幸的是,你前面有一辆车,你无法超越它。幸运的是,你的刹车功能正常,而且非常强劲。

你从山顶出发,在时间为 0 秒时速度为 0 m/s。重力以恒定的加速度将你的车向山下牵引。在任何时刻,你都可以使用刹车来降低速度,或者通过任何方式暂时减小加速度。

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

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例的第一行包含三个空格分隔的数字:一个实数 $D$,表示到山脚下家的距离(单位:米);以及两个整数 $N$ 和 $A$。距离 $D$ 将以精确的 6 位小数给出。

接下来 $N$ 行,每行包含两个空格分隔的实数:时间 $t_i$(单位:秒)和位置 $x_i$(单位:米)。$t_i$ 和 $x_i$ 的值将以精确的 6 位小数给出。

最后一行包含 $A$ 个空格分隔的实数 $a_i$,表示加速度(单位:$m/s^2$)。加速度将以精确的 2 位小数给出。

前车的行驶位置由 $(t_i, x_i)$ 对指定。该车在时间 $t_i$ 秒时的位置是距离山顶(即你的初始位置)$x_i$ 米处。该车在时间 $t_i$ 和 $t_{i+1}$ 之间以恒定速度行驶。位置和时间均按递增顺序给出,且 $t_0=0$。

例如,如果 $t_5=10, x_5=20, t_6=20, x_6=40$,那么在出发后 10 秒,前车在山下 20 米处;出发后 15 秒,前车在山下 30 米处;出发后 20 秒,前车在山下 40 米处。

输出格式

对于每个测试用例,输出一行 "Case #c:",其中 $c$ 是用例编号(从 1 开始)。然后输出 $A$ 行,第 $i$ 行包含当你受重力影响的加速度为 $a_i$ 且以最优方式使用刹车时,到达家所需的最短时间(单位:秒)。答案与正确答案的绝对误差或相对误差在 $10^{-6}$ 以内均被接受。输出中不应包含空行。

说明

位置与加速度: 一个具有恒定加速度 $a \, m/s^2$ 且初始速度为 $v_0 \, m/s$ 的物体,在 $t$ 秒后移动的距离为 $v_0 \cdot t + 0.5 \cdot a \cdot t^2$。

坡道距离: 所有距离和加速度均相对于沿山坡的直线给出。它们不是水平距离;因此,如果你的车以 $0 \, m/s$ 的初速度加速 $2 \, m/s^2$,而前车在 $x=1$ 处停止,那么到达前车将正好需要 1 秒。

前车: 你永远不能超过前车,这意味着在任何时刻,你距离山顶的距离都不得大于前车的距离。可以相等。两辆车均视为质点。

输出值: 你可以在输出中打印任意位小数。我们将读取并与我们的答案进行比较,比较时将使用 $10^{-6}$ 作为误差阈值。因此,从我们的角度来看,25、25.0 和 25.000000 是相同的。小数点后的尾随零不影响结果。

数据范围

$1 \le T \le 20$

$1.0 \le D \le 10^4$

$1.0 \le a_i \le 9.81$

$0.0 \le t_i \le 10^5$

$0.0 \le x_i \le 10^5$

$t_i < t_{i+1}$

$x_i < x_{i+1}$

$t_0 = 0$

$x_{N-1} \ge D$

子任务 1

$1 \le N \le 2$

$1 \le A \le 10$

子任务 2

$1 \le N \le 2000$

$1 \le A \le 250$

样例

输入 1

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

输出 1

Case #1:
44.7213595
25.000000
25.0
Case #2:
50000.0
50000.0
Case #3:
10140.974143

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.