zoukankan      html  css  js  c++  java
  • HDU 5538/ 2015长春区域 L.House Building 水题

    题意:求给出图的表面积,不包括底面

    ///1085422276
    #include<bits/stdc++.h>
    using namespace std ;
    typedef long long ll;
    #define mem(a) memset(a,0,sizeof(a))
    #define meminf(a) memset(a,127,sizeof(a));
    #define TS printf("111111
    ");
    #define FOR(i,a,b) for( int i=a;i<=b;i++)
    #define FORJ(i,a,b) for(int i=a;i>=b;i--)
    #define READ(a,b,c) scanf("%d%d%d",&a,&b,&c)
    #define inf 100000
    inline ll read()
    {
        ll x=0,f=1;
        char ch=getchar();
        while(ch<'0'||ch>'9')
        {
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(ch>='0'&&ch<='9')
        {
            x=x*10+ch-'0';
            ch=getchar();
        }
        return x*f;
    }
    //****************************************
    #define maxn 100+5
    int ss[4][2]={-1,0, 0,-1, 1,0, 0,1};
    int a[maxn][maxn],n,m;
    bool check(int x,int y){
    if(x<=0||y<=0||x>n||y>m)return 1;
    else return 0;
    }
    int main(){
    
       int T;
       scanf("%d",&T);
       while(T--){
            mem(a);
           ll sum=0;
            ll tmp=0;
           ll ans=0;
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                scanf("%d",&a[i][j]);
                if(a[i][j])
                tmp=tmp+(a[i][j]-1);
                sum+=a[i][j];
                if(a[i][j])ans++;
            }
        }
        sum*=6;
       sum-=ans;
       ans=0;
    
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                    if(a[i][j]!=0)
                for(int k=0;k<4;k++){
                    int xx=i+ss[k][0];
                    int yy=j+ss[k][1];
                    if(check(xx,yy))continue;
                    if(a[xx][yy]) {ans+=(min(a[i][j],a[xx][yy]));}
                }
            }
        }
      //  cout<<sum<<endl;
      //cout<<ans/2+tmp<<endl;
         ans/=2;
        ans+=tmp;
        ans*=2;
        //cout<<ans<<endl;
        sum=sum-ans;
        printf("%I64d
    ",sum);
       }
      return 0;
    }
    代码
  • 相关阅读:
    JavaScript之Math和date
    JavaScript之ES5和String
    JavaScript之数组
    JavaScript之 函数
    JavaScript之循环语句
    movies.js
    Js内存存放机制
    Web框架
    css中那些属性是可以继承的?
    赋值运算
  • 原文地址:https://www.cnblogs.com/zxhl/p/4977521.html
Copyright © 2011-2022 走看看