版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}