社区讨论

30pts求条

P1451求细胞数量参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m6ug5z2e
此快照首次捕获于
2025/02/07 15:30
去年
此快照最后确认于
2025/11/04 09:49
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
int n, m, ans, a[110][110];
int dx[4] = {-1, 1, 0, 0}, dy[4] = {0, 0, -1, 1};
bool vis[110][110];

void dfs(int x, int y) {
	vis[x][y] = 1;
	for (int i = 0; i < 4; i ++) {
		int tx = x + dx[i], ty = y + dy[i];
		if (vis[tx][ty] == 1 || a[tx][ty] == 0) return;
		dfs(tx, ty);
	}
}

int main() {
	scanf("%d %d", &n, &m);
	for (int i = 1; i <= n; i ++) 
		for (int j = 1; j <= m; j ++) 
			scanf("%d", &a[i][j]);
	for (int i = 1; i <= n; i ++) {
		for (int j = 1; j <= m; j ++) {
			if (vis[i][j] == 0 && a[i][j] != 0) {
				ans ++;
				dfs(i, j);
			}
		}
	}
	cout << ans;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...