TB椰程 TypeBuddy 打字搭子

工艺品制作

洛谷·深入浅出 · 代码 · cpp · 难度 3/5 · 共 730 字

三维体素被立方空洞蒸发,求剩余体积

  • 洛谷
  • 例题

正文

// 原题:https://oj.yecheng.tv/p/1399
// 题意:w×x×h 的 1×1×1 小方块,q 次立方空洞切割,求剩余方块数。
// 思路:三维布尔数组标记被蒸发的格子,统计未被标记的。
// 复杂度:O(w*x*h + q*空洞),规模很小。
// 易错点:坐标范围含端点 [x1,x2];体积 = 总格 - 蒸发格。
#include <iostream>
using namespace std;
int main(){
    int w, x, h, q;
    cin >> w >> x >> h >> q;
    bool used[25][25][25] = {false};
    int total = w * x * h, removed = 0;
    for(int t = 0; t < q; t++){
        int x1, y1, z1, x2, y2, z2;
        cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
        for(int i = x1; i <= x2; i++)
            for(int j = y1; j <= y2; j++)
                for(int k = z1; k <= z2; k++)
                    if(!used[i][j][k]){ used[i][j][k] = true; removed++; }
    }
    cout << total - removed << endl;
    return 0;
}

洛谷·深入浅出的其它内容

打字首页 · 词库画廊 · 编程打字 · 指法入门 · 天梯榜 · 数据分析 · 班级课堂 · 关于我们
椰程 TypeBuddy 打字搭子 —— 键盘指法练习 · 单词记忆 · 班级课堂 · 在线 PK