QOJ.ac

QOJ

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

#4005. 青蛙

Statistics

Grammy 在一个圆柱体的边缘发现了一只青蛙。该圆柱体以 $(0, 0)$ 为中心,半径为 $1$。青蛙每次跳跃的距离恰好为 $1$。Grammy 希望青蛙移动到她指定的位于圆柱体边缘的目标点。请帮助 Grammy 找到一条跳跃次数最少的路径。

注意,青蛙在任何时候都不能处于圆柱体的严格内部。

输入格式

输入包含多个测试用例。 第一行包含一个整数 $T$ ($1 \le T \le 10\,000$),表示测试用例的数量。 每个测试用例仅一行,包含两个整数 $d_s, d_t$ ($0 \le d_s, d_t \le 359$),表示青蛙的起始位置为 $(\cos \frac{\pi d_s}{180}, \sin \frac{\pi d_s}{180})$,目标位置为 $(\cos \frac{\pi d_t}{180}, \sin \frac{\pi d_t}{180})$。

输出格式

对于每个测试用例,按以下格式输出一行或多行。 第一行包含一个整数 $k$,表示该测试用例中最少的跳跃次数。 接下来的 $k+1$ 行包含青蛙的落脚点,包括起始点和目标点。 接下来的 $k+1$ 行中,第 $i$ 行包含两个实数,表示青蛙第 $i$ 个落脚点的坐标。

如果满足以下所有条件,你的答案将被视为正确: 跳跃次数最少。 第一个落脚点与起始点之间的距离小于 $10^{-6}$。 最后一个落脚点与目标点之间的距离小于 $10^{-6}$。 任意两个连续落脚点之间的距离 $d$ 满足 $1 - 10^{-6} < d < 1 + 10^{-6}$。 * 连接任意两个连续落脚点的线段到 $(0, 0)$ 的距离 $d > 1 - 10^{-6}$。

样例

输入 1

3
0 0
0 90
180 0

输出 1

0
1.0000000000 0.0000000000
2
1.0000000000 0.0000000000
1.0000000000 1.0000000000
0.0000000000 1.0000000000
4
-1.0000000000 0.0000000000
-1.0000000000 -1.0000000000
-0.0000000000 -1.0000000000
1.0000000000 -1.0000000000
1.0000000000 -0.0000000000

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.