首页 > 其他 > 详细

【HDOJ5538】House Building(计算几何)

时间:2018-10-30 20:29:53      阅读:152      评论:0      收藏:0      [点我收藏+]

题意:给定一个n*m的方阵,第i行第j列的高度为a[i][j],问除了下底面之外其余五面的总表面积

n<=50,0<=a[i][j]<=1000

思路:队友写的,抱大腿

考虑当前方格比周围四格高多少即可

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 #define LL long long  
 5 const int maxn=55;
 6 int a[maxn][maxn];
 7 int dx[4]={1,0,-1,0};
 8 int dy[4]={0,1,0,-1};
 9 int main()
10 {
11     int T;
12     scanf("%d",&T);
13     while(T--)
14     {
15         int n,m;
16         memset(a,0,sizeof(a));
17         scanf("%d%d",&n,&m);
18         for(int i=1;i<=n;i++)
19             for(int j=1;j<=m;j++)
20                 scanf("%d",&a[i][j]);
21         int sum=0;
22         for(int i=1;i<=n;i++)
23             for(int j=1;j<=m;j++)
24             {
25                 if(!a[i][j])
26                     continue;
27                 sum++;
28                 for(int k=0;k<4;k++)
29                 {
30                     int x=dx[k]+i;
31                     int y=dy[k]+j;
32                     if(a[x][y]<a[i][j])
33                         sum+=a[i][j]-a[x][y];
34                 }
35             }
36         printf("%d\n",sum);
37     }
38 }

 

【HDOJ5538】House Building(计算几何)

原文:https://www.cnblogs.com/myx12345/p/9879252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!