#include"iostream"
#include"cstdio"
#include"cstdlib"
#include"cstring"
using namespace std;
char map[105][105];
int n,m;
int sum=0;
bool book[105][105];
int nextk[8][2]={{0,1},{0,-1},{1,0},{-1,0},{1,1},{1,-1},{-1,1},{-1,-1}};
void dfs(int i,int j)
{
for(int a=0;a<8;a++)
{
int dx=i+nextk[a][0];
int dy=j+nextk[a][1];
if(dx<1||dx>n||dy<1||dy>m||book[dx][dy]==1||map[dx][dy]=='*') continue;
else
{
book[dx][dy]=1;
dfs(dx,dy);
}
}
}
int main()
{
while(scanf("%d%d",&n,&m)==2&&n!=0&&m!=0)
{
sum=0;
memset(book,0,sizeof(book));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>map[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(book[i][j]==0&&map[i][j]=='@')
{
book[i][j]=1;
sum++;
dfs(i,j);
}
}
}
cout<<sum<<endl;
}
return 0;
}
HDU 搜索 1241
最新推荐文章于 2019-12-01 15:24:02 发布