hdoj 1241dfs1

    xiaoxiao2021-03-25  94

    #include<stdio.h> #include<iostream> #include<cstring> using namespace std; int m,n; char a[110][100]; bool vis[110][110]; void  dfs(int , int ); int main() {     int ans=0;     while(~scanf("%d%d",&m,&n),m&&n)     {         memset(vis,0,sizeof(vis));         ans=0;         for(int i=0; i<m; i++)         scanf("%s",a[i]);         for(int i=0;i<m; i++)             for(int j=0; j<n; j++)         {             if(vis[i][j]==0 && a[i][j]=='@' )             {   ans++;  dfs(i,j);  }         }         cout<<ans<<endl;     }     return 0; } void dfs(int i, int j) {     if( i<0||j<0||i>=m||j>=n)         return ;     if( a[i][j]=='*' || vis[i][j]==1)         return ;     vis[i][j]=1;     for(int k=0; k<=1; k++)         for(int l=0; l<=1; l++)     {         if(l!=0|| k!=0)             dfs(i+k,j+l);     } }
    转载请注明原文地址: https://ju.6miu.com/read-17780.html

    最新回复(0)