Gooooogle • 4个月前
#include <bits/stdc++.h>
using namespace std;
int a[310][310] ;
int n, m, sb = 0;
void SB(int i, int j) {
if (i < 0 || j < 0 || i >= n || j >= m) {
return;
}
if (a[i][j] == 1) {
return;
}
a[i][j] = 1;
SB(i, j - 1);
SB(i, j + 1);
SB(i - 1, j);
SB(i + 1, j);
}
int main() {
scanf("%d%d", &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++ ) {
SB(i, 0);
}
for (int i = 0; i < n ; i++ ) {
SB(i, m - 1);
}
for (int j = 0; j < m ; j++ ) {
SB(0, j);
}
for (int j = 0; j < m ; j++ ) {
SB(n - 1, j);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] == 0) {
sb++;
SB(i, j);
}
}
}
printf("%d", sb);
return 0;
}
using namespace std; int a[310][310] ; int n, m, sb = 0;
void SB(int i, int j) {
if (i < 0 || j < 0 || i >= n || j >= m) {
return;
}
if (a[i][j] == 1) {
return;
}
a[i][j] = 1;
SB(i, j - 1);
SB(i, j + 1);
SB(i - 1, j);
SB(i + 1, j);
}
int main() {
scanf("%d%d", &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++ ) {
SB(i, 0);
}
for (int i = 0; i < n ; i++ ) {
SB(i, m - 1);
}
for (int j = 0; j < m ; j++ ) {
SB(0, j);
}
for (int j = 0; j < m ; j++ ) {
SB(n - 1, j);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] == 0) {
sb++;
SB(i, j);
}
}
}
printf("%d", sb);
return 0;
}
评论:
请先登录,才能进行评论