不多说,搜索的水题。
题目:要求你找有几摊油泊,‘@’表示油泊,油泊范围包括‘@’及周围八格内。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn=105;
int n,m;int x1,y1;
char map[maxn][maxn];
void bfs(int a,int b)
{
if(a<0||a>=n||b<0||b>=m)
return ;
if(map[a][b]=='*')
return ;
if(map[a][b]!='*')
{
map[a][b]='*';
for(int i=-1;i<=1;i++)
{
for(int j=-1;j<=1;j++)
bfs(a+i,b+j);
}
}
}
int main()
{
while(~scanf("%d%d",&n,&m),n&&m)
{
int pt=0;
for(int i=0;i<n;i++)
{
scanf("%s",map[i]);
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if(map[i][j]=='@')
{
bfs(i,j);
pt++;
}
}
printf("%d\n",pt);
}
return 0;
}