本文主要是介绍【HDU】 5538 House Building,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
House Building
- 题目链接
House Building
- 题目大意
就是一个用多个小方块搭成的建筑,我们需要计算他的表面积,不用算底面的面积。
- 题解
对每个坐标位置的方块进行处理,检查他有几个面是暴露在外面的,这样我们可以得出每个坐标位置的方块的表面积,最后加起来就可以了。
- 代码
比较易懂的代码
#include <iostream>
#include <cstring>
#include <cstdio>using namespace std;int n,m,T,a[55][55],ans;
int way[4][2]={{0,-1},{0,1},{1,0},{-1,0}};int solve(int x,int y)
{int x1,y1,ans=0;for (int i=0;i<4;i++){x1=x+way[i][0]; y1=y+way[i][1];if (a[x][y]>a[x1][y1]) ans=a[x][y]-a[x1][y1]+ans;}if (a[x][y]) return (ans+1);else return 0;
}int main()
{scanf("%d",&T);while (T--){memset(a,0,sizeof(a));ans=0;scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) scanf("%d",&a[i][j]);for (int i=1;i<=n;i++)for (int j=1;j<=m;j++) ans+=solve(i,j);printf("%d\n",ans);}return 0;
}
这篇关于【HDU】 5538 House Building的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!