错了

噢莫加纳加加加  •  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;
}

评论:

请先登录,才能进行评论