HDU - 6518 - Clumsy Keke(思维)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sugarbliss/article/details/89438477

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6518

题意:给你一个三维物体的三视图,让你求最大可能的体积。

思路:直接构建三维图形,开始全部赋值为1,如果三视图为0则更改为0,最后就是最大体积。

#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+7;
int a[105][105][105],b,x,y,z,X,Y,Z,ans;
int main()
{
    while(~scanf("%d%d%d",&X,&Y,&Z))
    {
        for(x = 1; x <= X; x++)
        for(y = 1; y <= Y; y++)
        for(z = 1; z <= Z; z++)a[x][y][z]=1;

        for(x = 1; x <= X; x++)
        for(y = 1; y <= Y; y++)
        {
            scanf("%d",&b);
            if(!b)for(z = 1; z <= Z; z++) a[x][y][z] = 0;
        }
        for(y = 1; y <= Y; y++)
        for(z = 1; z <= Z; z++)
        {
            scanf("%d",&b);
            if(!b)for(x = 1; x <= X; x++) a[x][y][z] = 0;
        }
        for(z = 1; z <= Z; z++)
        for(x = 1; x <= X; x++)
        {
            scanf("%d",&b);
            if(!b)for(y = 1; y <= Y; y++) a[x][y][z] = 0;
        }
        ans = 0;
        for(x = 1; x <= X; x++)
        for(y = 1; y <= Y; y++)
        for(z = 1; z <= Z; z++) ans += a[x][y][z];
        printf("%d\n",ans);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/sugarbliss/article/details/89438477
今日推荐