QOJ.ac

QOJ

Time Limit: 1 s Memory Limit: 1024 MB Total points: 100

#3008. 火箭動力氣墊船

Statistics

你正在為一艘自主火箭動力氣墊船編寫程式。這艘船可以行駛得非常、非常快,但轉向很困難。由於它懸浮在地面上,因此它透過啟動定向推進器來轉向;無論它正在前進還是靜止,這些推進器都能使船轉向。

你進行測試的鹽灘已用 $\text{2D}$ 笛卡兒座標網格標示。氣墊船從這個網格上的位置 $(0,0)$ 出發,朝向 $X$ 軸正方向。你的任務是讓船抵達鹽灘上的另一個位置 $(x,y)$。

氣墊船的固定對地速度為每秒 $v$ 英里,固定旋轉速率為每秒 $w$ 弧度。由於火箭在加速和減速時的強大推力,它幾乎可以瞬間達到最高速度,也可以同樣迅速地從最高速度停下。同樣地,它可以瞬間開始以固定速率旋轉,也可以同樣迅速地停止旋轉。它可以順時針或逆時針旋轉。

你必須求出讓船抵達目標所需的最短時間。控制船的程式可以開始前進、停止前進、開始旋轉和停止旋轉,每種操作都恰好執行一次。注意,開始/停止前進可以與開始/停止旋轉各自獨立進行。

輸入格式

每筆測試資料恰好包含兩行。

第一行包含兩個以空格分隔的整數 $x$ 和 $y$($−1,000 \leq x, y \leq 1,000,(x,y)\ne(0,0)$),表示你想抵達的鹽灘網格位置,單位為英里。

輸入的第二行包含兩個以空格分隔、恰好有兩位小數的實數:$v$($0.01 \leq v \leq 10.00$)和 $w$($0.01 \leq w \leq 10.00$)。其中 $v$ 是固定行駛速度,單位為英里/秒;$w$ 是往任一方向旋轉的固定速率,單位為弧度/秒。

輸出格式

輸出一個實數,表示在上述限制下,氣墊船從 $(0,0)$ 抵達 $(x,y)$ 所需的最短時間(秒)。若你的答案的絕對誤差不超過 $10^{−3}$,便會被接受。

範例

輸入格式 1

20 0
1.00 0.10

輸出格式 1

20.00000000

輸入格式 2

-10 10
10.00 1.00

輸出格式 2

3.14159265

輸入格式 3

0 20
1.00 0.10

輸出格式 3

28.26445910

輸入格式 4

-997 -3
5.64 2.15

輸出格式 4

177.76915187

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.