QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 256 MB 總分: 100

#136. 奔跑者与狙击手

统计

由于某种原因,你正在逃离一名敌人。敌人是一名装备了高科技激光枪的狙击手,一旦被击中,你就会立即失败。你是一名非常出色的跑步者,但你很想知道为了不被狙击手击中,你需要跑多快。情况如下:你和狙击手位于 $xy$ 平面上,该平面的 $x$ 轴和 $y$ 轴分别指向右方和上方。你可以假设该平面是无限大的,并且没有任何障碍物阻挡激光或你的移动。

狙击手和激光枪位于 $(0, 0)$ 处,且不能从初始位置移动。狙击手可以以每单位时间最多 $\omega$ 度的速度连续旋转激光枪(顺时针或逆时针),并且可以在任何时间改变旋转方向。激光枪初始时指向从 $x$ 轴正方向逆时针旋转 $\phi$ 度的方向。

你最初位于平面上的 $(x, y)$ 点,可以以不超过 $v$ 的速度向任意方向移动(由于你是一名非常出色的跑步者,你可以任意确定 $v$ 的值)。当你被狙击手击中时,激光枪正好指向你的位置,也就是说,你可以忽略激光从激光枪到达你所在位置所需的时间。假设你的身体是一个点,而激光是一条以 $(0, 0)$ 为端点的射线。

当且仅当你和狙击手都采取最优策略时,求出你会被狙击手在有限时间内击中的最大速度 $v$。

输入格式

输入包含一行四个整数 $x, y, \phi$ 和 $\omega$。两个整数 $x$ 和 $y$ ($0 \le |x|, |y| \le 1000, (x, y) \neq (0, 0)$) 表示你在 $xy$ 平面上的初始位置。整数 $\phi$ ($0 \le \phi < 360$) 表示激光枪的初始方向:即从 $x$ 轴正方向逆时针旋转的角度(单位为度)。整数 $\omega$ ($1 \le \omega \le 100$) 是激光枪在单位时间内可以旋转的角度。你可以假设在初始位置时你不会被狙击手击中。

输出格式

输出一行,包含你会被狙击手在有限时间内击中的最大速度 $v$。绝对误差或相对误差应小于 $10^{-6}$。

样例

样例输入 1

100 100 0 1

样例输出 1

1.16699564

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.