poj2386(dfs)

来源:互联网 发布:阿里算法工程师p6待遇 编辑:程序博客网 时间:2024/06/11 16:57

从第一个#开始搜,搜到周围有.就改变它的状态,没搜索一次就说明有一个水洼,输出搜索次数!

#include<cstdio>char a[101][101];int n,m,next[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};void dfs(int x,int y){   a[x][y]='.';   for(int i=0;i<8;i++)   {       int tx=x+next[i][0];       int ty=y+next[i][1];     if(tx<0||ty<0||tx>=n||ty>=m)       continue;      if(a[tx][ty]=='W')        dfs(tx,ty);   }   return;}int main(){    int num=0;    scanf("%d %d",&n,&m);    for(int i=0;i<n;i++)    {        scanf("%s",a[i]);    }    for(int i=0;i<n;i++)    {        for(int j=0;j<m;j++)        {            if(a[i][j]=='W')            {                num++;                dfs(i,j);            }        }    }    printf("%d\n",num);}这里写代码片
0 0
原创粉丝点击