为什么60分?
查看原帖
为什么60分?
1202094
OYkeke楼主2025/1/10 10:55
#include<iostream>
using namespace std;
const int N = 21;
char ch;
int n, m, ax[4] = {1, -1, 0, 0}, ay[4] = {0, 0, 1, -1}, ans = 0;
bool sum[N][N];
void dfs(int x, int y) {
	sum[x][y] = 0;
	for (int i = 0; i < 4; i++) {
		int nx = x + ax[i], ny = y + ay[i];
		if (sum[nx][ny] == 0 || nx <= -1 || ny <= -1 || nx >= n || ny >= m)	continue;
		dfs(nx, ny);
	}
}
int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> ch;
			sum[i][j] = ch - '0';
		}
	}
	for (int i = 0; i < n; i++) 
		for (int j = 0; j < m; j++) {
			if (sum[i][j]) {
				dfs(i, j);
				ans++;
			}
		}
	cout << ans;
}
2025/1/10 10:55
加载中...