不会写抄的题解但是看不懂,这篇(https://www.luogu.com.cn/article/hnrxc43a) 注释了位置,大佬995😭
#include <bits/stdc++.h>
using namespace std;
//vector<vector<int>> shao;
int shao[105][105];//<---------------这里
int ans;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};
int n,m;
void dfs(int x,int y){
shao[x][y] = 0;//<------------------这里
for(int i = 0 ; i < 4 ; ++ i){
x += dx[i];
y += dy[i];
if(x > 0 && y > 0 && x <= n && y <= m && shao[x][y] != 0){
dfs(x,y);
}
x -= dx[i];
y -= dy[i];
}
}
int main(){
cin >> n >> m;
for(int i = 1 ; i <= n ; ++ i){
for(int j = 1 ; j <= m ; ++ j){
scanf("%1d",&shao[i][j]);
}
}
for(int i = 1 ; i <= n ; ++ i){
for(int j = 1 ; j <= m ; ++ j){
if(shao[i][j] == 0){//<---------------这里
continue;
}
dfs(i,j);
ans++;
}
}
cout << ans;
return 0;
}