QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 960 MB Total points: 100 Hackable ✓

#15834. The Drift King

統計

宇宙中存在一个与宇宙本身一样古老的生命体,人们(在大学时)曾称他为“漂移之王”(Drift King)。漂移之王既是混沌的化身,也是秩序的象征。他驾驶着他的宇宙超级跑车,以一种起初看起来杂乱无章、实则规律清晰的扭曲、循环、弯曲方式在太空中穿行。

我们将宇宙建模为二维笛卡尔平面,漂移之王汽车的位置由一个点表示,该点具有一个指向特定方向的“车头”。漂移之王自然只通过漂移来移动。他的车可以通过两种方式之一移动,每种方式由一个特定的符号表示:

  • L 表示:沿一段四分之一圆弧路径逆时针移动,圆心位于其左侧 1 单位处。
  • R 表示:沿一段四分之一圆弧路径顺时针移动,圆心位于其右侧 1 单位处。

如果漂移之王的汽车当前面向东方,下图展示了这些移动方式的样子。

这些“左”和“右”是相对于汽车当前面向的方向而言的。这些四分之一圆转弯会在每一步改变汽车的朝向。汽车的速度使得它在 1 个单位时间内完成其中一段四分之一圆弧。

汽车的路径由将这些移动方式串联起来形成的模式定义,然后该模式向两个方向无限重复。我们已知汽车在时间 $t = 0$ 时的位置和朝向,因此其路径是唯一确定的。

形式上,令 $s$ 为一个 0 索引字符串 $s = s_0s_1s_2 \dots s_{n-1}$,其中每个字符为 L 或 R。该字符串 $s$ 描述了向两个方向无限延伸的模式。它按顺序执行这些指定的转弯,当到达字符串末尾时循环回到开头(反之亦然)。

准确地说,汽车的旅程被定义为唯一的连续路径,满足:

  • 在每个整数时间 $t$(包括负值),汽车开始执行由 $s(t \pmod n)$ 指示方向的转弯;
  • 在时间 $t = 0$ 时,汽车位于 $(0, 0)$ 且面向东方。

我们强调,即使在这些整数时间戳之间,汽车在执行这些转弯时也在空间中连续移动。

下图展示了遵循模式 LRR 时路径的样子。注意,即使在 $t = 0$ 之前,汽车也已经按照这种模式移动了。

假设地球位于点 $(h, k)$。漂移之王这个威胁距离我们的星球最近(欧几里得距离)是多少(包括过去和未来)?此外,每个文件中会有 $T$ 个独立的测试用例。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量。接下来是 $T$ 个测试用例的描述。

每个测试用例的第一行包含两个空格分隔的整数 $h$ 和 $k$。

每个测试用例的第二行包含字符串 $s$。

输出格式

输出一个十进制值,表示漂移之王距离地球的最近距离。

如果你的答案与裁判答案的绝对误差或相对误差不超过 $10^{-8}$,则你的答案将被接受。用符号表示,令 $ans_{\text{you}}$ 为你的答案,$ans_{\text{judge}}$ 为裁判答案。如果满足以下条件,你的答案将被接受:

$$\frac{|ans_{\text{you}} - ans_{\text{judge}}|}{\max(1, ans_{\text{judge}})} \le 10^{-8}$$

数据范围

  • $1 \le T$
  • $-10^9 \le h, k \le 10^9$
  • $1 \le |s|$
  • 所有测试用例的 $\sum |s| \le 10^5$
  • $s$ 的每个字符均为 L 或 R

样例

输入 1

2
3 2
LRR
2 -1
LRR

输出 1

0.41421356237309504876
1.82842712474619009753

说明

两个样例测试用例都使用了模式 LRR,这正是题目描述中展示的例子。

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.