AT_ttpc2023_d Spacecraft
题目描述
在三维空间中,有 $N$ 颗星星分布在各不相同的坐标上。第 $i$ 颗星星位于点 $P_i(x_i, y_i, z_i)$。此外,以原点为中心、半径为 $R$ 的球形宇宙飞船悬浮在空间中。
空间中的某个点 $p$ 被称为**美丽点**,当且仅当对于 $i=1, 2, \dots, N$,同时满足以下条件:
- 能从点 $p$ 观测到第 $i$ 颗星星。即,$p$ 与 $P_i$ 之间的线段不会穿过宇宙飞船的球体及其内部。
请你计算美丽点所在区域的连通分量的个数。换句话说,设所有美丽点的集合为 $L$,请按如下等价关系 $\sim$ 将 $L$ 划分,问商集合的大小是多少。
- 对于 $p_1, p_2 \in L$,若存在 $L$ 上的一条曲线以 $p_1$、$p_2$ 为端点,则 $p_1 \sim p_2$;反之亦然。
此外,可以证明这个值不会超过 $10^{18}$。
给定 $T$ 个测试用例,请分别作答。
输入格式
输入通过标准输入给出,格式如下:
> $T$ $\mathrm{case}_1$ $\mathrm{case}_2$ $\vdots$ $\mathrm{case}_T$
每组测试用例 $\mathrm{case}_i$ 的输入格式如下:
> $N$ $R$ $x_1$ $y_1$ $z_1$ $\vdots$ $x_N$ $y_N$ $z_N$
输出格式
请输出每组测试用例的答案。
说明/提示
### 样例解释 1
在第 $1$ 个测试用例中,存在美丽点。
- 例如 $(0,0,100)$ 就是一个美丽点。将该点与给定的 $4$ 个点各自连成的线段都不会穿过宇宙飞船球体的内部。
- 另一个例子是 $(21,0,0)$,它同样是美丽点。
- 这两个点属于同一个连通分量。
在第 $2$ 个测试用例中,不存在美丽点。
### 数据范围
- 所有输入都是整数。
- $1 \le T \le 10$
- $1 \le N \le 500$
- $1 \le R < \sqrt{x_i^2 + y_i^2 + z_i^2} \le 10^3\quad (1 \le i \le N)$
- 对于所有 $i < j$,有 $(x_i, y_i, z_i) \neq (x_j, y_j, z_j)$
- 对于以下的操作,答案不会变化:
- 对于 $i = 1, 2, \dots, N$,任选一条经过原点的直线 $l_i$ 和一个实数 $\theta_i\ (|\theta_i| \le 10^{-6})$,将星星 $i$ 的位置绕 $l_i$ 旋转 $\theta_i$ 角度。
由 ChatGPT 5 翻译