测试点一在本地过了但全wa,求大佬调
查看原帖
测试点一在本地过了但全wa,求大佬调
1100140
Ryoo楼主2024/5/25 09:25

#include <bits/stdc++.h>
using namespace std;
char a[505][505];
int x,y,h[250010][2],diry[4] = {1,0,-1,0},dirx[4] = {0,1,0,-1},ans;	
		
int main() {

	scanf("%d%d", &y,&x);
	getchar();
	for(int i = 0; i <= 504; i++) {
		for(int j = 0; j <= 504; j++) {
			a[i][j] = '0';
		}
	}
	
	for(int i = 1; i <= y; i++) {
		for(int j = 1; j <= x; j++) {
			scanf("%c", &a[i][j]);
		}
		if(i < x) getchar(); 
	}
	
	int head = 0,tail = 1;
	h[tail][0] = 0;h[tail][1] = 0;
	while(head<=tail) {
		head++;
		for(int i = 0; i < 4; i++) {
			int xi = h[head][0]+dirx[i];int yi = h[head][1]+diry[i];
			if(xi >= 0 && yi >= 0 && xi <= x+1 && yi <= y+1 && a[yi][xi] == '0') {
				tail++;
				h[tail][0] = xi;h[tail][1] = yi;
				a[yi][xi] = '1';
			}
		}
	}
	for(int i = 1; i <= y; i++) {
		for(int j = 1; j <= x; j++) {
			if(a[i][j] == '0') ans++;
		}
	}
	printf("%d", ans);
	return 0;
}
2024/5/25 09:25
加载中...