全WA蒟蒻求助
查看原帖
全WA蒟蒻求助
1004215
GuaiRen楼主2024/12/10 18:26

样例全过,提交全错

#include<iostream>
const int MAXXY = 505;
int m[MAXXY][MAXXY], x, y, cnt = 0, stx = -1, sty = -1;
char temp;
void dfs(int startX, int startY) {
	if (startX < 1 || startX > x || startY < 1 || startY > y || m[startX][startY] != 0) {
		return;
	}
	if (m[startX][startY] == 1) return;
	if (m[startX][startY] == 0) {
		m[startX][startY] = 2; // 标记
	} else return;
	if (m[startX + 1][startY] == 0 && startX < x) dfs(startX + 1, startY);
	if (m[startX - 1][startY] == 0 && startX > 1) dfs(startX - 1, startY);
	if (m[startX][startY + 1] == 0 && startY < y) dfs(startX, startY + 1);
	if (m[startX][startY - 1] == 0 && startY > 1) dfs(startX, startY - 1);
}
int main() {
	scanf("%d%d", &x, &y);
	for (int i = 1; i <= x; i++) {
		getchar();
		for (int j = 1; j <= y; j++) {
			if (getchar() == '0') {
				m[i][j] = 0;
			} else {
				m[i][j] = 1;
			}
		}
	}
		dfs(1, 1);
		for (int i = 1; i <= x; i++) {
			for (int j = 1; j <= y; j++) {
				if (m[i][j] == 0) cnt++;
			}
		}
		printf("%d\n", cnt);
	return 0;
}
2024/12/10 18:26
加载中...