![]() |
||||||||||
|
||||||||||
球面几何Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1 Accepted Submission(s): 1 Problem Description 已知一个球面的球心是原点,问球面上的 $n$ 个小圆将球面划分为了几个部分。 Hint: 用不通过球心的平面去截球面,所截得的曲线是一个圆,称该圆为这个球面的小圆。 Hint: 显然可以通过小圆的圆心坐标(在球面内部但不与球心重合)唯一确定一个小圆。 Input 第一行一个整数 $T$,表示数据组数。对于每组数据: 第一行 2 个整数 $n, R$,分别表示小圆个数、球面半径。 接下来 n 行每行三个整数 $x_i, y_i, z_i$ 表示一个小圆的圆心。 数据保证 $1 \le T \le 20, 1 \le \sum n \le 1000$,$1 \le R \le 10^9$;小圆的圆心在球的内部但不是原点($0 < x_i^2 + y_i^2 + z_i^2 < R^2$);任意球面上的点不被三个小圆穿过;所有小圆两两不相切。 Output 每组数据输出一行,包含一个整数,表示球面被小圆划分为了几个部分。 Sample Input
Sample Output
Hint 对于样例一,两个小圆相离,因此球面被划分为:第一个小圆的内部、第二个小圆的内部、其余部分。 对于样例二,两个小圆相交,因此球面被划分为:圆1相对于圆2的补集、圆2相对于圆1的补集、圆1与圆2的交集、其余部分。 Source | ||||||||||
|