本地测试样例都过了传上去10个RE怎么回事
查看原帖
本地测试样例都过了传上去10个RE怎么回事
242417
xiaotaozi楼主2022/5/21 10:00
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
int nxt[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};
queue <pair<int,int> > q;
int visit[35][35];
char maze[35][35];
int main() {
	int m,n;
	cin>>m>>n;
	for(int i=1; i<=m; i++) {
		for(int j=1; j<=n; j++) {
			cin>>maze[i][j];
		}
	}
	visit[0][0]=1;
	q.push(make_pair(0,0));
	while(!q.empty()) {
		int xx=q.front().first;
		int yy=q.front().second;
		q.pop();
		for(int i=0; i<4; i++) {
			int tx=xx+nxt[i][0];
			int ty=yy+nxt[i][1];
			if(visit[tx][ty] || tx<0 || ty<0 || tx>n+1 || ty>n+1 || maze[tx][ty]=='*') {
				continue;
			} else {
				visit[tx][ty]=1;
				q.push(make_pair(tx,ty));
			}
		}
	}
	int tot;
	for(int i=1; i<=m; i++) {
		for(int j=1; j<=n; j++) {
			if(maze[i][j]!='*' && !visit[i][j]) {
				tot++;
			}
		}
	}
	cout<<tot;
	return 0;
}
2022/5/21 10:00
加载中...