• 【HDOJ5538】House Building(计算几何)


    题意:给定一个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
    ",sum);
    37     }
    38 }
  • 相关阅读:
    MySql中引擎
    Session和Cookie的区别和联系
    Global Round 2
    CF550 DIV3
    Java的反射机制
    IO多路复用
    简单DP内容
    Java 对象的创建以及类加载
    Java 一些常见问题(持续更新)
    红黑树的一些知识点
  • 原文地址:https://www.cnblogs.com/myx12345/p/9879252.html
Copyright © 2020-2023  润新知