数学题(立方体堆叠表面积)HDU 5538-House Building

╰+攻爆jí腚メ 2022-05-15 05:22 234阅读 0赞
  • 数学题(立方体堆叠表面积)HDU 5538-House Building


  • 题目链接:

House Building

  • 思路:

题目大意:

以“我的世界”这款游戏为背景,给定建筑面积 n,m ,及每个单位立方体的个数(也就是高度),求建筑表面积

C646-1012-2.jpg

题解 :

首先,俯视图的面积是一定的

侧面积,对每个立方体扫描,定义方向向量扫相邻4个立方体,如果周围某个立方体低于中间立方体,那么中间立方体的那个方向上的侧面积可以算。

  • 代码:

    include

    include

    using namespace std;

    define MAX_SIZE 60

    int Direct[5][2]={
    {0,0},{-1,0},{1,0},{0,-1},{0,1}};

    int Map[MAX_SIZE][MAX_SIZE];

    int main()
    {

    1. int T,n,m;
    2. cin>>T;
    3. while(T--)
    4. {
    5. int Area=0;
    6. memset(Map,0,sizeof(Map));
    7. cin>>n>>m;
    8. for(int i=1;i<=n;i++)
    9. {
    10. for(int j=1;j<=m;j++)
    11. {
    12. cin>>Map[i][j];
    13. if(Map[i][j])
    14. Area++;
    15. }
    16. }
    17. for(int i=1;i<=n;i++)
    18. {
    19. for(int j=1;j<=m;j++)
    20. {
    21. for(int k=1;k<=4;k++)
    22. {
    23. if(Map[i][j]>Map[i+Direct[k][0]][j+Direct[k][1]])
    24. Area+=Map[i][j]-Map[i+Direct[k][0]][j+Direct[k][1]]; //差值侧面积
    25. }
    26. }
    27. }
    28. cout<<Area<<endl;
    29. }
    30. return 0;

    }

发表评论

表情:
评论列表 (有 0 条评论,234人围观)

还没有评论,来说两句吧...

相关阅读

    相关 【Linux利用】House of Force

    写在前面的话 其实我也是照葫芦画瓢(但学习本来就是这么一件事),首先基本的原理你的搞懂吧。具体参考CTF-WIKI,那个真的是说得非常清楚了!我也只是记录一下自己的学习笔

    相关 HDU 1141(数学)

    题意:1960年的计算机是4位处理器,1970年是8位,没过10年翻一倍,求当前年份的计算机处理器能存储的阶乘n!中n的大小。   思路:假设处理器的位数为x位,则n! <

    相关 echarts和平铺

    echarts堆叠和平铺的设置 数据堆叠,同个类目轴上系列配置相同的stack值后,后一个系列的值会在前一个系列的值上相加。 方法:设置series下面的 stack 即可