#P16521. [Bapc2008]Robintron
[Bapc2008]Robintron
题目背景
战争期间,Robinson 一家希望尽快离开人类帝国。普通航天器都被征用,于是 Joe Robinson 制造了 Robintron——一种只借助行星引力在行星之间跳跃的交通工具。
题目描述
一个恒星系中有 颗行星,恒星始终位于原点。每颗行星都沿以恒星为圆心的圆形轨道做匀速逆时针运动。
第 颗行星给出:
- 旅程开始时的位置 ;
- 引力井半径 ;
- 角速度 ,单位为弧度/天。
行星本身视为一个点,其轨道半径始终为
Robintron 初始位于第一颗行星,目标是最后一颗行星。
当 Robintron 位于行星 上时,它会随行星 一起绕恒星运动。如果行星 的当前位置进入另一颗行星 的引力井,即两颗行星中心之间的距离不超过 ,Robintron 就可以立即从 跳跃到 。跳跃和着陆所需时间忽略不计;跳跃后,Robintron 随行星 一起运动。
由于各行星的角速度可能不同,等待某次跳跃机会可能需要一定时间,也可能永远不会出现。
请计算 Robintron 从第一颗行星到达最后一颗行星所需的最短时间。题目保证目标行星一定可达。
输入格式
第一行包含一个整数 ,表示测试用例数量。
对于每个测试用例:
- 第一行包含一个整数 (),表示行星数量,不包括位于原点的恒星。
- 接下来 行,每行包含四个数 :
- ;
- ;
- 。
所有行星均逆时针旋转, 的单位为弧度/天。
旅程始终从输入中的第一颗行星出发,以最后一颗行星为目的地。恒星不能用于跳跃。
输出格式
对于每个测试用例,输出一行一个整数:最短旅行时间向上取整后的天数。
若目标行星可以立即到达,则输出 0。
样例输入
2
3
10.0 0.0 1.0 1.570796325
-13.0 0.0 3.1 3.14159265
17.0 0.0 4.1 0.0
5
10.0 0.0 1.1 1.0
12.0 0.0 1.1 2.0
13.0 0.0 1.1 1.0
0.0 11.0 1.1 3.14159265
14.0 0.0 1.1 1.0
样例输出
3
7