zoukankan      html  css  js  c++  java
  • hdu 4414 Finding crosses 夜

    http://acm.hdu.edu.cn/showproblem.php?pid=4414

    简单枚举

    代码:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <queue>
    #include <vector>
    #include <algorithm>
    
    #define LL long long
    //#pragma comment(linker, "/STACK:1024000000,1024000000")
    using namespace std;
    const int N=105;
    string figure[N];
    int n;
    bool cross(int I,int J)
    {
        int k1=0,k2=0,k3=0,k4=0;
        for(int j=J+1;j<n;++j)
        {
            if(figure[I][j]=='#')
            {
                if(figure[I-1][j]=='o'&&figure[I+1][j]=='o')
                ++k1;
                else
                return false;
            }else
            break;
        }
        if(k1==0)
        return false;
        for(int j=J-1;j>=0;--j)
        {
            if(figure[I][j]=='#')
            {
                if(figure[I-1][j]=='o'&&figure[I+1][j]=='o')
                ++k2;
                else
                return false;
            }else
            break;
        }
        if(k1!=k2)
        return false;
        for(int i=I+1;i<n;++i)
        {
            if(figure[i][J]=='#')
            {
                if(figure[i][J+1]=='o'&&figure[i][J-1]=='o')
                ++k3;
                else
                return false;
            }else
            break;
        }
        if(k1!=k3)
        return false;
        for(int i=I-1;i>=0;--i)
        {
            if(figure[i][J]=='#')
            {
                if(figure[i][J+1]=='o'&&figure[i][J-1]=='o')
                ++k4;
                else
                return false;
            }else
            break;
        }
        if(k1!=k4)
        return false;
        return true;
    
    }
    int main()
    {
        //freopen("data.txt","r",stdin);
        while(cin>>n)
        {
            if(n==0)
            break;
            for(int i=0;i<n;++i)
            cin>>figure[i];
            int ans=0;
            for(int i=1;i<n-1;++i)
            {
                for(int j=1;j<n-1;++j)
                {
                    if(figure[i][j]=='#'&&cross(i,j))
                    ++ans;
                }
            }
            cout<<ans<<endl;
        }
        return 0;
    }
    
    
  • 相关阅读:
    Xcode代码块快捷输入
    Git常用命令
    vim
    MACOX中apache配置
    IOS中实现动画的几种方式
    Swift与OC混合编译
    网络图像加载
    我对互联网的理解
    运行时
    自动布局使用
  • 原文地址:https://www.cnblogs.com/liulangye/p/2703410.html
Copyright © 2011-2022 走看看