1 条题解

  • 0
    @ 2025-4-7 19:49:28

    解题提示

    1. 逐个计算立方体的相交区域
    2. 注意处理立方体不相交的情况
    3. 相交立方体的边界计算是关键
    #include <iostream>
    #include <cstdio>
    
    using namespace std;
    
    struct Point {
        int x, y, z;
    };
    
    int main()
    {
        Point a, b, c;
        int n, d;
        while(~scanf("%d", &n) && n) {
            scanf("%d %d %d %d", &a.x, &a.y, &a.z, &d);
            b.x = a.x + d;
            b.y = a.y + d;
            b.z = a.z + d;
            for(int i = 1; i < n; i++) {
                scanf("%d %d %d %d",&c.x, &c.y, &c.z, &d);
                a.x = max(c.x, a.x);
                a.y = max(c.y, a.y);
                a.z = max(c.z, a.z);
                b.x = min(c.x + d, b.x);
                b.y = min(c.y + d, b.y);
                b.z = min(c.z + d, b.z);
            }
            printf("%d\n", max((b.x - a.x) * (b.y - a.y) * (b.z - a.z), 0));
        }
    
        return 0;
    }
    • 1

    信息

    ID
    189
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    2
    已通过
    1
    上传者