60分,帮我看看拿错了。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,vis[10086][10086];
int dx[]={0,0,1,1,1,-1,-1,-1};
int dy[]={1,-1,0,1,-1,0,1,-1};
void dfs(int x,int y){
vis[x][y]=1;
for(int i=0;i<8;i++){
int xa=x+dx[i],ya=y+dy[i];
if(xa>0&&x<=n&&y>0&&y<=m&&!vis[xa][ya]){
dfs(xa,ya);
}
}
}
signed main(){
std::ios::sync_with_stdio(false);
std::cin.tie(0);
cin>>n>>m;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
char a;
cin>>a;
if(a=='.'){
vis[i][j]=1;
}
}
}
int cnt=0;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
if(!vis[i][j]){
cnt++;
dfs(i,j);
}
}
}
cout<<cnt;
return 0;
}