噢莫加纳加加加 • 7天前
#include <bits/stdc++.h>
using namespace std;
int a[301][301];
int m, n;
void bfs(int i, int j) {
if (i < 1 || i > n || j < 1 || j > m || a[i][j] == 0) {
return;
}
a[i][j] = 0;
bfs(i + 1, j);
bfs(i - 1, j);
bfs(i, j + 1);
bfs(i, j - 1);
}
int main() {
cin >> n >> m;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
cin >> a[i][j];
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (i == 1 || j == 1 || i == n || j == m)
bfs(i, j);
}
}
int ans = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
if (a[i][j])
ans++;
}
}
cout << ans;
return 0;
}
评论:
请先登录,才能进行评论