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