3RE+7MLE求助
  • 板块P1141 01迷宫
  • 楼主Alven1234
  • 当前回复13
  • 已保存回复13
  • 发布时间2023/8/5 15:16
  • 上次更新2023/11/3 05:45:22
查看原帖
3RE+7MLE求助
653295
Alven1234楼主2023/8/5 15:16

看不出自己为啥MLE,改了改,变RE了(悲

#include <bits/stdc++.h>
using namespace std;
int n,m,vis[1005][1005],ans[1005][1005],ask1,ask2,dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};
char a[1005][1005];
struct pos{
	int x,y,num;
};
pos p1,p2,p3;
void bfs(int x,int y){
	queue <pos> q;
	memset(vis,0,sizeof(vis));
	p1.x=x,p1.y=y,p1.num=1;
	vis[x][y]=1;
	q.push(p1);
	while(!q.empty()){
		p2=q.front();
		q.pop();
		for(int i=0;i<4;i++){
			int xx=p2.x+dx[i],yy=p2.y+dy[i];
			if(xx<=n && yy<=n && xx>=1 && yy>=1 && !vis[xx][yy] && a[p2.x][p2.y]!=a[xx][yy])
				p3.num=p2.num+1,p3.x=xx,p3.y=yy;
				vis[xx][yy]=1;
				ans[xx][yy]=p3.num;
				q.push(p3);}}}
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<=m;i++){
		cin>>ask1>>ask2;
		bfs(ask1,ask2);
		cout<<ans[ask1][ask2]<<endl;
	}
	return 0;
}
2023/8/5 15:16
加载中...