P17734 [ICPC 2019 Xuzhou R] Polycut
题目描述
给定一个具有 $N$ 个顶点和 $M$ 条棱的凸多面体。这个多面体有些丑陋,因此你想将其切割成不同的形状。
你在三维空间中选择了 $K$ 个平面。每个平面会将一个多面体切割成两个多面体。如果原多面体完全位于平面的某一侧,我们定义其中一个多面体为空集(其体积为零)。因此,这 $K$ 个平面会将多面体切割成 $2^K$ 个多面体。
你想知道切割后每个多面体的体积。但由于原多面体的顶点过多,你需要编写一个程序来计算答案。
输入格式
第一行包含三个正整数 $N, M, K$ ($N\leq M\leq 3\times 10^4$, $K\leq 3$) —— 分别表示多面体的顶点数、棱数以及平面个数。
接下来的 $N$ 行,每行包含三个整数 $x_i, y_i, z_i$ ($-10^4\leq x_i,y_i,z_i\leq 10^4$) —— 第 $i$ 个顶点的坐标。顶点从 $0$ 到 $N-1$ 编号。
接下来的 $M$ 行,每行包含两个整数 $u,v$ ($0\leq u,v
输出格式
输出 $2^K$ 个实数,每行一个,表示切割后每个多面体的体积。**这些数字必须按非递减顺序排序。**
若你的答案的相对误差或绝对误差不超过 $10^{-6}$,则被视为正确。
说明/提示
翻译由 DeepSeek V4 Pro 完成