QOJ.ac

QOJ

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

#3794. 巧克力环

Estadísticas

让我们制作一种形状奇特的甜点,它是一个巧克力环。

图 A.1. 由六个球体组成的巧克力环

环的形状由若干个大小相同的球体的并集组成,其中每个球体恰好与另外两个球体相交。

(a) 四个球体的并集 (b) (a) 中四个球体的四个交集

图 A.2. 由四个球体组成的巧克力环

你的任务是编写一个程序,给定球体的大小和位置,计算这些球体并集的总体积,即填充该环所需的巧克力总量。

[提示] 两个半径为 $r$ 的球体,当其球心距离 $d$ 小于 $2r$ 时会发生相交。已知其相交部分的体积为 $$\frac{2}{3}\pi(r - d/2)^2(2r + d/2)$$ 半径为 $r$ 的球体体积为 $4\pi r^3/3$。

输入格式

输入包含单个测试用例,格式如下:

$n \ r$ $x_1 \ y_1 \ z_1$ $\vdots$ $x_n \ y_n \ z_n$

$n$ 和 $r$ 为整数。$n$ 是球体的数量 ($4 \le n \le 100$)。所有球体具有相同的半径 $r$ ($2 \le r \le 100$)。$(x_k, y_k, z_k)$ 表示第 $k$ 个球体球心的坐标 ($k = 1, \dots, n$)。所有 $x_k, y_k, z_k$ 均为 $-100$ 到 $100$ 之间的整数。

对于 $1 \le k < n$,第 $k$ 个球体与第 $k+1$ 个球体相交。第 $1$ 个球体与第 $n$ 个球体也相交。除此之外,没有其他球体对相交。

输出格式

输出一行,表示球体并集的体积。输出的相对误差应在 $10^{-7}$ 以内。

样例

样例输入 1

6 9
20 0 10
20 10 0
10 20 0
0 20 10
0 10 20
10 0 20

样例输出 1

17149.528141

样例输入 2

4 12
10 10 0
10 -10 0
-10 -10 0
-10 10 0

样例输出 2

27813.56696

样例输入 3

6 9
23 3 13
20 10 0
10 20 0
3 23 13
0 10 20
10 0 20

样例输出 3

17470.837758

样例输入 4

4 2
0 0 0
3 0 0
3 3 0
0 3 0

样例输出 4

122.52211349

样例输入 5

8 70
100 100 0
0 100 0
-100 100 0
-100 0 0
-100 -100 0
0 -100 0
100 -100 0
100 0 0

样例输出 5

10220648.1

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.