QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 512 MB 總分: 100

#854. 弓箭手弗拉德

统计

Vlad 站在笛卡兒平面上的原點 $(0, 0)$。平面上有 $N$ 棵樹,編號從 $1$ 到 $N$,第 $i$ 棵樹由連接點 $(x_i, 0)$ 和 $(x_i, y_i)$ 的垂直線段表示,其中 $x_i$ 和 $y_i$ 為正整數。當 Vlad 以角度 $\alpha$ 射箭時,箭的初始水平速度為 $v_x = C \cdot \cos(\alpha)$,初始垂直速度為 $v_y = C \cdot \sin(\alpha)$。箭不受空氣阻力影響,其軌跡為一拋物線(精確來說,水平速度 $v_x$ 在整個飛行過程中保持不變,而 $v_y$ 則以每秒 $g$ 的速率線性遞減),且軌跡通過點 $(0, 0)$。假設重力加速度 $g = 10 \, \text{m/s}^2$。若箭的軌跡在任何一點都不與任何樹(更具體地說是代表樹的線段)相交,且箭的軌跡與 $x$ 軸的交點之 $x$ 座標大於所有樹的 $x$ 座標,則 Vlad 的目標達成。

請輸出一個允許 Vlad 達成這些條件的 $\tan(\alpha)$ 值。

輸入格式

第一行包含測試案例數量 $z$。接著為各測試案例的描述。

每個測試案例的第一行包含一個整數 $1 \le C \le 10^9$,代表 Vlad 箭的速率(單位:公尺/秒)。

每個測試案例的第二行包含一個整數 $1 \le N \le 100\,000$,代表樹的數量。

對於每個測試案例,接下來的 $N$ 行包含兩個整數 $x_i, y_i$ ($1 \le x_i, y_i \le 10^9$)。第 $i$ 棵樹由連接點 $(x_i, 0)$ 和 $(x_i, y_i)$ 的垂直線段表示。

所有測試案例中 $N$ 的總和不超過 $300\,000$。

輸出格式

對於每個測試案例,輸出一個小數點後恰好 3 位的數字。該數字必須是正確的 $\tan(\alpha)$ 值之一的近似值,誤差不超過 $10^{-3}$。你可以假設解總是存在,且任何正確的 $\tan(\alpha)$ 值都包含在一個長度至少為 $10^{-2}$ 的解區間內。

範例

範例輸入 1

3
5
1
1 1
5
1
1 1
13
1
7 7

範例輸出 1

2.000
3.000
2.429

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.