zoukankan      html  css  js  c++  java
  • hdoj 4414 Finding crosses

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

    sb题啊,我wa了好久,你妹妹。。

    就是暴力枚举,然后我的方法是在检查每一位的时候检查他的相邻位,是否符合条件,队友的方法是后面来次dfs、、其实都一样。。

    View Code
    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    char map[100][100];
    void init(int len)
    {
        for(int i=0;i<len;i++)
            scanf("%s",map[i]);
    }
    int check(int x,int y,int len)
    {
        int up=0;
        int down=0;
        int left=0;
        int right=0;
        int x0,y0;
         x0=x-1;
        while(x0>=0)
        {
            if(map[x0][y]=='#')up++;
            else break;
     if(map[x0][y-1]=='#'||map[x0][y+1]=='#')return 0;
    //同时检查和他相邻的位
            x0--;
        }
         x0=x+1;
        while(x0<len)
        {
            if(map[x0][y]=='#')down++;
            else break;
            if(map[x0][y-1]=='#'||map[x0][y+1]=='#')return 0;
            x0++;
        }
         y0=y-1;
        while(y0>=0)
        {
            if(map[x][y0]=='#')left++;
            else break;
            if(map[x-1][y0]=='#'||map[x+1][y0]=='#')return 0;
            y0--;
        }
          y0=y+1;
        while(y0<len)
        {
            if(map[x][y0]=='#')right++;
            else break;
            if(map[x-1][y0]=='#'||map[x+1][y0]=='#')return 0;
            y0++;
        }
        if(up==down&&left==right&&up==left)
            if(up>=1)
                return 1;
        return 0;
    }
    void solve(int len)
    {
        int ans=0;
        for(int i=1;i<len;i++)
            for(int j=1;j<len;j++)
                if(map[i][j]=='#')
                    if(check(i,j,len))ans++;
        cout<<ans<<endl;
    }
    int main()
    {
        int len;
        while(scanf("%d",&len))
        {
            if(!len)break;
            init(len);
            solve(len);
        }
        return 0;
    }
  • 相关阅读:
    虚函数表
    写出float x 与“零值”比较的if语句
    系统表的构成
    UEFI的inf文件构成
    最短路径算法
    EDK2与EDK2工具链关系图
    GIT提交本地文件
    docker学习笔记-04:docker容器数据卷
    docker学习笔记-03:docker的镜像原理
    docker学习笔记-02:docker常用命令
  • 原文地址:https://www.cnblogs.com/cs1003/p/2700502.html
Copyright © 2011-2022 走看看