SP3463 ROBIN - Robintron

题目描述

公元 2240 年,罗宾逊一家在战争中决定离开人类帝国,去寻找一个更加和平的居所。他们已经选定了目的地,并希望尽快抵达。然而,由于所有可以进行太空飞行的交通工具都被用于战争,罗宾逊一家暂时无法通过普通的太空手段离开当前的星球。于是,父亲乔·罗宾逊发明了一种名为罗宾特隆的交通工具。罗宾特隆能够借助引力作用,从一个星球表面移动到另一个星球表面。 罗宾特隆停留在一个星球上是因为该星球的引力。这种引力范围叫做引力井,以行星为中心扩展出的圆形区域,由行星自身的质量决定。巧妙的是,这些引力井也能使罗宾特隆通过“跳跃”方式离开一个星球:当它进入另一个星球的引力井时,罗宾特隆便能利用对方的引力斥力,获得足够的动能飞往并降落在另一星球。整个逃离和降落的过程几乎不花费任何时间。 然而,进行“星球跳跃”有其限制条件。罗宾特隆必须处于其所在星球之外的另一个星球的引力井才能成功跳跃。因为行星围绕恒星做完美的圆周运动,它们会不停地改变位置,这可能导致罗宾特隆需要等待一段时间才进入某个特定星球的引力井。另外,一旦决定使用某个星球的引力井,罗宾特隆将随该星球一同绕恒星运动,这可能导致永远错过其他星球的引力井。 现在,给定一个恒星系统中若干行星的信息,以及罗宾特隆的起始位置和最终目的地,编写程序计算罗宾特隆到达目的地所需的天数(使用向上取整函数,例如:ceiling(2.3) = 3),要求选择最快的路径。 由于大多数星系中的行星都呈圆盘状围绕恒星排列,因此只需考虑二维平面。同时,假设每个行星是空间中的一个点,罗宾特隆所在位置的坐标与所处行星相同。

输入格式

输入的第一行包含一个整数 $n$,代表测试用例的数量。 对于每个测试用例: - 第一行是一个正整数 $m$($0 < m < 1000$),表示恒星系统中的行星数量(不包括总是位于 \[0, 0\] 的恒星)。 - 接下来每行包含四个浮点数:$x$ 和 $y$ 分别是行星开始位置的 x 坐标和 y 坐标($-10^{10} \le x, y \le 10^{10}$);$r$ 是引力井的半径($0 < r \le 10^5$);$s$ 为行星以弧度/天单位逆时针绕恒星旋转的速度($0 \le s \le 2 \pi$)。数值间用空格分隔。 罗宾特隆总是从列表中的第一个行星开始,目的地是最后一个行星,且保证目的地总是可以从起始点到达。恒星过于炽热,因此不能在其上进行星球跳跃。

输出格式

对于每个测试用例,输出一行包含一个整数:罗宾特隆到达目的地所需的天数(向上取整)。如果能立即到达目的地,输出结果为 0。 **本翻译由 AI 自动生成**