zl程序教程

您现在的位置是:首页 >  其他

当前栏目

zoj 1709 dfs

2023-03-14 10:18:00 时间
#include<stdio.h>
char jk[101][101];
int m,n;
int dir[8][2]={{-1,-1},{-1,0},{-1,1},
    {0,1},{0,-1},{1,1},{1,-1},{1,0}};
void dfs(int x,int y)
{
    int i,xx,yy;
    jk[x][y]='*';
    for(i=0;i<8;i++)
    {
        xx=x+dir[i][0];
        yy=y+dir[i][1];
        if(xx<0||yy<0||xx>=m||yy>=n)
            continue;
        if(jk[xx][yy]=='@')
            dfs(xx,yy);
    }
}
int main()
{
    int i,j,count;
   // freopen("input.txt","r",stdin);
    while(1)
    {
        scanf("%d%d",&m,&n);
        if(m==0)  break;
        for(i=0;i<m;i++)
            scanf("%s",jk[i]);
        count=0;
        for(i=0;i<m;i++)
        for(j=0;j<n;j++)
        {
           if(jk[i][j]=='@')
           {
               dfs(i,j);
               count++;
           }
        }
        printf("%d\n",count);
    }
   return 0;
}