P2459 [SDOI2007] 立体分割 题解

· · 题解

P2459 [SDOI2007] 立体分割 题解

题目传送门 | Portals

P2459 [SDOI2007] 立体分割

题意归纳 | Title

把长宽高的分别为 x,y,z 的立方体分成 n 份,使每份体积相等。

题目分析 | Analyse

由于题目中说了:“每行 6实数”。
所以我们可以平均分长、宽或高。

解题思路 | Thinking

我写的是平均分高。

先用 s 记录每行之间的距离,层数为 i,每加一层就输出那一层左上点与右下点的位置:

Code

#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <math.h>
#include <cmath>

using namespace std;

double x, y, z, n;

int main ()
{
    scanf ("%lf%lf%lf%lf", &x, &y, &z, &n);
    double s = z / n;
    for (double i = 1; i <= n; i ++) 
    {
        printf ("0 0 %.10lf ", (i - 1) * s);
        printf ("%.10lf %.10lf %.10lf\n", x, y, i * s);
    }
    return 0;
}