zoj 1709 dfs

来源:互联网 发布:c语言二维数组字符串 编辑:程序博客网 时间:2024/05/03 01:08
#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;}

原创粉丝点击