hdu 5538House Building(长春现场赛)

来源:互联网 发布:windows xp 修复系统 编辑:程序博客网 时间:2024/05/06 17:54

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


题目意思:给你一块n*m的矩阵,在上面放小方块 ,数字代表方块个数,求所有方块的表面积。有点类似于小学时候的数学题。。。。。


直接暴力 没什么说的

#include<stdio.h>#include<string.h>#include<set>#include<queue>#include<algorithm>#include<iostream>using namespace std;#define lson l,m,k<<1#define rson m+1,r,k<<1|1const int N = 1000005;int mat[55][55];int dir[4][2]={0,1,1,0,0,-1,-1,0};int main(){    int t,n,m;    scanf("%d",&t);    while(t--)    {        memset(mat,0,sizeof(mat));        int sum=0;        scanf("%d%d",&n,&m);        for(int i=1;i<=n;i++)        {            for(int j=1;j<=m;j++)            {                scanf("%d",&mat[i][j]);                sum+=6*mat[i][j];                if(mat[i][j]>0)                    sum-=(1+(mat[i][j]-1)*2);            }        }        //cout<<sum<<endl;        for(int i=1;i<=n;i++)        {            for(int j=1;j<=m;j++)            {                for(int k=0;k<4;k++)                {                    int x=i+dir[k][0];                    int y=j+dir[k][1];                    //cout<<mat[x][y]<<" "<<mat[i][j]<<endl;                    sum-=min(mat[x][y],mat[i][j]);                    //cout<<i<<" "<<j<<" "<<sum<<endl;                }            }        }        printf("%d\n",sum);    }    return 0;}



0 0
原创粉丝点击