代码如下:
#include <bits/stdc++.h>
using namespace std;
int n, m, d[4][2] = {1, 0, 0, 1, -1, 0, 0, -1}, sum = 0;
char a[102][102];
void dfs(int x, int y){
a[x][y] = 48;
for (int i = 0; i < 4; i++){
int nx = x + d[i][0], ny = y + d[i][1];
if (a[nx][ny] != 48) dfs(nx, ny);
}
return;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)for(int j=0;j<m;j++)scanf(" %d", &a[i][j]);
for(int i=0;i<n;i++)for(int j=0;j<m;j++)if(a[i][j]!=48)sum++,dfs(i,j);
cout<<sum;
return 0;
}