如下,用的深度搜索,样例都能过,但是测试只有20分,大家帮忙看看错哪里了
using namespace std;
int N,M;
int waterNum=0;
char a[105][105];
void dfs(int x,int y)
{
if(x<0||x>=N||y<0||y>=M||a[x][y]!='.') return;
a[x][y]=waterNum+'0';
dfs(x-1,y);
dfs(x-1,y-1);
dfs(x-1,y+1);
dfs(x,y+1);
dfs(x,y-1);
dfs(x+1,y+1);
dfs(x+1,y);
dfs(x+1,y-1);
}
int main()
{
char tmp;
cin>>N>>M;
for(int i=0;i<N;i++)
{
cin>>a[i];
}
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{ if(a[i][j]=='.')
{
waterNum++;
dfs(i,j);
}
}
}
cout<<waterNum;
return 0;
}