AC
```c
#include<iostream>
using namespace std;
const int N = 110;
int a[N][N];
int X[5] = {0, -1, 0, 1, 0};
int Y[5] = {0, 0, -1, 0, 1};
int n, m;
int ans=0;
void dfs(int x, int y) {
a[x][y] = 0;
for (int i = 1; i <= 4; i ++) {
int dx = x + X[i];
int dy = y + Y[i];
if (dx >= 1 && dy >= 1 && dx <= n && dy <= m && a[dx][dy] != 0)
dfs(dx, dy);
x = dx - X[i];
y = dy - Y[i];
}
return ;
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i ++)
for (int j = 1; j <= m; j ++)
scanf("%1d", &a[i][j]);
for (int i = 1; i <= n; i ++) {
for (int j = 1; j <= m; j ++) {
if (a[i][j] == 0)
continue;
dfs(i, j);
ans ++;
}
}
cout << ans;
return 0;
}
```
by timmyliao @ 2024-02-02 11:54:52
感谢!!!
by Charlie0429 @ 2024-02-02 13:33:05