QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 256 MB Puntuación total: 100

#8698. 违抗重力

Estadísticas

Oz 星位于二维欧几里得空间的坐标原点。Elphaba 想要向所有人展示她的力量远超物理定律。为此,她决定从 Oz 出发,沿着某条直线飞向无穷远处。

这个问题因为 Oz 周围环绕着 $n$ 颗卫星而变得复杂。已知每颗卫星的极坐标 $(\rho_i, \phi_i)$ 和质量 $m_i$。这里,行星和卫星都被视为质点,$\rho_i$ 是从 Oz 到第 $i$ 颗卫星的径向距离,$\phi_i$ 是卫星与某个固定参考方向之间的极角,以角秒为单位测量。

假设 Elphaba 位于向量 $\vec{r}$ 所指的点,质量为 $m$,而第 $i$ 颗卫星位于向量 $\vec{r}_i$ 所指的点。卫星以从 Elphaba 指向卫星的方向吸引 Elphaba。该力与 Elphaba 的质量 $m$ 和卫星的质量 $m_i$ 成正比,与它们之间距离的平方 $|\vec{r} - \vec{r}_i|^2$ 成反比。因此,第 $i$ 颗卫星对 Elphaba 施加的力 $\vec{F}_i$ 的精确值为:

$$\vec{F}_i = -\frac{G m m_i (\vec{r} - \vec{r}_i)}{|\vec{r} - \vec{r}_i|^3}$$

这里,$G$ 是万有引力常数,其具体数值在本题中无关紧要。不同卫星施加的力直接相加。因此,所有卫星对 Elphaba 施加的总力 $\vec{F}$ 等于 $\vec{F} = \vec{F}_1 + \dots + \vec{F}_n$。

Elphaba 希望选择她的飞行方向,使得飞行路径不会穿过任何卫星,且在飞行过程中的任何时刻,其方向都不会受到卫星的影响。换句话说,对于 Elphaba 轨迹上的所有点 $\vec{r}$,力 $\vec{F}$ 必须与 $\vec{r}$ 共线。

你的任务是找出 Elphaba 飞行所有可能的方向。

输入格式

第一行包含一个整数 $n$ ($2 \le n \le 2 \cdot 10^5$),表示卫星的数量。

接下来的 $n$ 行,每行包含三个整数 $\rho_i, \phi_i$ 和 $m_i$ ($1 \le \rho_i \le 10^{18}, 0 \le \phi_i < 129\,600, 1 \le m_i \le 10^9$),分别表示第 $i$ 颗卫星的极坐标和质量。

保证没有两颗卫星具有相同的极角 $\phi$。

输出格式

输出一个排好序的实数列表 $\alpha$ ($0 \le \alpha < 129\,600$),表示所有可能飞行方向的极角(以角秒为单位)。如果列表中每个数字的绝对误差或相对误差不超过 $10^{-6}$,则你的答案被视为正确。保证答案包含的飞行方向总数不超过 $2 \cdot 10^5$。

样例

输入 1

2
1 0 1
1 64800 1

输出 1

32400.0000000
97200.0000000

输入 2

3
1 0 1
1 1 1
1 2 1

输出 2

0

说明

一角秒(记作 $1''$)等于一角分的六十分之一(记作 $1'$),而一角分又等于一度的六十分之一(记作 $1^\circ$)。因此,$60'' = 1'$,$60' = 1^\circ$,且 $129\,600'' = 360^\circ$,这意味着 $129\,600$ 角秒构成一个完整的圆周。

在第一个样例中,第一颗卫星位于点 $A(1; 0)$,第二颗卫星位于点 $B(-1; 0)$。图中仅有的可能飞行方向由 $\vec{r}_1$ 和 $\vec{r}_2$ 表示,其极角分别为 $90^\circ = 32\,400''$ 和 $270^\circ = 97\,200''$。

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.