zoukankan      html  css  js  c++  java
  • 单纯的dfs

    此类题是dfs中最简单的题,如果要求类似于次数,多少种方法的问题,还要加上回溯法(恢复现场等),(n皇后剪枝)

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    using namespace std;
    const int maxn=105;
    char a[maxn][maxn];
    int lie[8][2]= {{-1,1},{0,1},{1,1},{-1,0},{1,0},{-1,-1},{1,-1},{0,-1}};//二维数组存储方向
    int visit[maxn][maxn];
    int n,m;
    void dfs(int x,int y)          //将图遍历一次即可
    {
        for(int i=0; i<8; i++)
        {
            int dx=x+lie[i][0];
            int dy=y+lie[i][1];
            if(dx>=0&&dx<n&&dy>=0&&dy<m&&a[dx][dy]=='@'&&!visit[dx][dy])
            {
                visit[dx][dy]=1;
                dfs(dx,dy);
            }
        }
    }
    int main()
    {
        while(scanf("%d%d",&n,&m)!=EOF&&n&&m)
        {
            memset(visit,0,sizeof(visit));
            for(int i=0; i<n; i++)
            {
                scanf("%s",a[i]);
            }
            int count=0;
            for(int i=0; i<n; i++)
            {
                for(int j=0; j<m; j++)
                {
                    if(a[i][j]=='@'&&!visit[i][j])
                    {
                        ++count;
                        dfs(i,j);
                    }
                }
            }
            cout<<count<<endl;
        }
        return 0;
    }
  • 相关阅读:
    ASP.NET MVC HandleError异常过滤器过滤器用法
    ASP.NET MVC 4 过滤器(Authorize)
    ASP.NET MVC 4 过滤器(Authorize)
    蜜蜂路线
    1220 数字三角形
    Ⅳ.Catalan数
    10:单词排序
    09:明明的随机数
    07:合影效果
    08:病人排队
  • 原文地址:https://www.cnblogs.com/calmwithdream/p/5322851.html
Copyright © 2011-2022 走看看