QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 1024 MB 總分: 100

#5505. 伟大追逐

统计

“警察与强盗”游戏在一条长直街道上进行,为了方便起见,可以将街道视为数轴。一名玩家(强盗)位于数轴的 $0$ 位置,其余 $n$ 名玩家(警察)站在他两侧(每侧至少有一名警察)。游戏开始时,每名警察以设定的速度向强盗跑去,强盗以速度 $v$ 开始逃跑,该速度大于任何警察的速度,且初始方向向右(沿数轴正方向)。每当强盗到达第一个冲向他的警察时,他会在忽略不计的时间内掉头,并继续向相反方向奔跑。这种情况一直重复,直到两名向相反方向奔跑的警察相遇,且强盗位于他们之间。

给定强盗和警察的初始位置,求强盗在整个游戏过程中移动的总距离。

输入格式

第一行包含测试用例的数量 $z$ ($1 \le z \le 10\,000$)。接下来是各测试用例的描述。

每个测试用例的第一行包含两个整数 $n$ ($2 \le n \le 400\,000$) 和 $v$ ($1 < v \le 10^6$),分别表示警察的数量和强盗的速度。

接下来的 $n$ 行,每行包含两个整数 $p_i$ ($-10^{12} \le p_i \le 10^{12}, p_i \neq 0$) 和 $v_i$ ($1 \le v_i < v$),分别表示第 $i$ 名警察的起始位置和速度。

所有测试用例中警察的总数不超过 $2 \cdot 10^6$。

输出格式

对于每个测试用例,在单独的一行中输出一个十进制格式的实数(非科学计数法),表示强盗移动的总距离。为了使答案被视为正确,相对误差或绝对误差不应超过 $10^{-8}$。换句话说,如果你的算法输出为 $a$,正确答案为 $b$,则当 $\frac{|a-b|}{\max(1, b)} \le 10^{-8}$ 时,你的答案将被接受。

输出的数字小数点后位数不得超过 20 位。

样例

输入 1

3
4 9
10 2
-7 2
-6 1
7 1
2 8
-1 7
1 6
2 3
-1000000000000 1
1000000000000 1

输出 1

38.25
1.23076923
3000000000000

说明

注意,本题同时考虑绝对误差和相对误差。这意味着当正确答案很大时,程序允许的误差范围也会相应变大。在最后一个样例测试用例中,正确答案为 $3 \cdot 10^{12}$,因此任何与该值偏差不超过 $30\,000$ 的数字都将被接受。

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.