为啥一堆mle啊
  • 板块P1141 01迷宫
  • 楼主yzk666
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/15 17:19
  • 上次更新2023/11/3 03:35:44
查看原帖
为啥一堆mle啊
1036760
yzk666楼主2023/8/15 17:19
#include<bits/stdc++.h>
#include <sstream>
using namespace std;
int n,m,c,l,k;
char a[1002][1002] = {'*'};
void bfs(int x,int y,int n){
	if(n==-1){
		if(a[x][y]=='1'){
			a[x][y] = '-';
			c++;
			bfs(x,y+1,1);
			bfs(x,y-1,1);
			bfs(x-1,y,1);
			bfs(x+1,y,1);
		}
		else if(a[x][y]=='0'){
			a[x][y] = '-';
			c++;
			bfs(x,y+1,0);
			bfs(x,y-1,0);
			bfs(x-1,y,0);
			bfs(x+1,y,0);
		}
	}
	else if(n==0&&a[x][y]=='1'){
		a[x][y] = '-';
		c++;
		bfs(x,y+1,1);
		bfs(x,y-1,1);
		bfs(x-1,y,1);
		bfs(x+1,y,1);
	}
	else if(n==1&&a[x][y]=='0'){
		a[x][y] = '-';
		c++;
		bfs(x,y+1,0);
		bfs(x,y-1,0);
		bfs(x-1,y,0);
		bfs(x+1,y,0);
	}
	else if(n==3&&a[x][y]=='-'){
		a[x][y] = c;
		bfs(x,y+1,3);
		bfs(x,y-1,3);
		bfs(x-1,y,3);
		bfs(x+1,y,3);
	}
}
int main(){
	cin>>n>>m;
	for(int i = 1;i<=n;i++){
		for(int j = 1;j<=n;j++){
			cin>>a[i][j];
		}
	}
	for(int i = 1;i<=n;i++){
		for(int j = 1;j<=n;j++){
			c = 0;
			if(a[i][j]=='0' || a[i][j]=='1'){
				bfs(i,j,-1);
				bfs(i,j,3);
			}
		}
	}
	for(int i = 0;i<m;i++){
		cin>>l>>k;
		cout<<(int)a[l][k]<<endl;
	}
	return 0;
}
2023/8/15 17:19
加载中...