又错了
  • 板块P1238 走迷宫
  • 楼主AT_T_Tdy
  • 当前回复2
  • 已保存回复2
  • 发布时间2025/7/21 18:02
  • 上次更新2025/7/22 00:55:03
查看原帖
又错了
1220160
AT_T_Tdy楼主2025/7/21 18:02
#include<bits/stdc++.h>
using namespace std;
int mapp[20][20];
int ax,ay,bx,by;
int m,n;
int f;
int xx[4]={0,1,0,-1};
int yy[4]={1,0,-1,0};
int st,ans[60600][2];
bool step[20][20];
void out(){
	if(f==0)f=1;
	for(int i=1;i<=st-1;i++)cout<<"("<<ans[i][0]<<","<<ans[i][1]<<")->";
	cout<<"("<<bx<<","<<by<<")"<<endl;
}
void bfs(int x, int y){
	if(x==bx&&y==by){
		out();
		return ;
	}
	else {
		for(int i=0;i<=3;i++){
			if(mapp[x+xx[i]][y+yy[i]]==1 && step[x+xx[i]][y+yy[i]]==0){
				step[x][y]=1;
				ans[st][0]=x;
				ans[st][1]=y;
				st++;
				bfs(x+xx[i],y+yy[i]);
				step[x][y]=0;
				st--;
				
			}	
		}
	}
}
int main(){
	
	cin>>m>>n;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>mapp[i][j];
		}
	}
	cin>>ax>>ay;
	cin>>bx>>by;
	bfs(ax,ay);
	if(f==0)cout<<-1;
	return 0;
}

2025/7/21 18:02
加载中...