• House Building---hdu5538(求表面积水题)


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

    题意:有一个三维的图形,先给出平面图是n*m的矩形,每个位置都有不同个数的方块,a[i][j]代表当前位置有a[i][j]个方块,就是高度;现要求三维图形的表面积,方块的边长为1;

    简单的水题,直接看一下每个位置的方块有几个面可以漏出来就可以了;

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    #include<iostream>
    #include<vector>
    #include<queue>
    #include<set>
    using namespace std;
    #define met(a, b) memset(a, b, sizeof(a))
    #define N 105
    #define INF 0x3f3f3f3f
    typedef long long LL;
    
    int dir[4][2] = { {1,0}, {-1,0}, {0,1}, {0,-1} };
    int a[N][N];
    
    int main()
    {
        int T, n, m;
        LL ans;
        scanf("%d", &T);
        while(T--)
        {
            met(a, 0);
            scanf("%d %d", &m, &n);
            for(int i=1; i<=m; i++)
            {
                for(int j=1; j<=n; j++)
                    scanf("%d", &a[i][j]);
            }
            ans = 0;
            for(int i=1; i<=m; i++)
            {
                for(int j=1; j<=n; j++)
                {
                    if(a[i][j] == 0)continue;
                    ans += 1;///最上层的一个;
                    for(int k=0; k<4; k++)
                    {
                        int x = i+dir[k][0];
                        int y = j+dir[k][1];
                        ans += max(0, a[i][j] - a[x][y]);
                    }
                }
            }
            printf("%I64d
    ", ans);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    杭电2063 过山车 匈牙利算法
    杭电2023 平均成绩
    leveldb性能分析
    linux下libreoffice安装测试
    iptables配置vsftp访问
    vsftp访问异常
    mysql二进制安装
    vi命令
    mysql配置优化
    rsync 配置
  • 原文地址:https://www.cnblogs.com/zhengguiping--9876/p/5876532.html
Copyright © 2020-2023  润新知