poj 1562 dfs

时间:2023-03-09 03:48:31
poj  1562 dfs

http://poj.org/problem?id=1562

#include<iostream>
using namespace std;
int n=,m=,sum=;
bool aa[][];
int dir[][]={-,,
,,
,-,
,,
,,
-,-,
-,,
,-
};
void dfs(int a,int b)
{
if(!aa[a][b])return;
aa[a][b]=;
for(int i=;i<;i++)
{
int a1=a+dir[i][];
int b1=b+dir[i][];
if(a1>=&&a1<m&&b1>=&&b1<n)
{
// aa[a1][b1]=0;
dfs(a1,b1); }
}
}
int main()
{
while(cin>>m>>n)
{ sum=;
if(m==)break;
for(int i=;i<m;i++)
{ char ch;
for(int j=;j<n;j++)
{ cin>>ch;
if(ch=='*')aa[i][j]=;
else aa[i][j]=;
}
} for(int i=;i<m;i++) for(int j=;j<n;j++)
{
if(aa[i][j]==)
{
dfs(i,j);
sum++;
}
} cout<<sum<<endl; } return ;
}