50分求助!
  • 板块P1238 走迷宫
  • 楼主liu_ruoyu
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/1 21:36
  • 上次更新2023/10/27 00:48:55
查看原帖
50分求助!
803907
liu_ruoyu楼主2022/12/1 21:36

各位大佬看看我的代码

#include<bits/stdc++.h>
using namespace std;
const int M=1e8+5;
struct A{
	int x,y;
}ans[M];
int xx[4]={0,-1,0,1},yy[4]={-1,0,1,0},x_1,y_1,a,n,m,x_2,y_2;
bool b[5000][5000];
void dfs(int x,int y,int z){
	ans[z].x=x,ans[z].y=y;
	if(x==x_1&&y==y_1){
		for(int i=1;i<=z;i++){
			if(i==1)cout<<"("<<ans[i].x<<","<<ans[i].y<<")";
			else cout<<"->"<<"("<<ans[i].x<<","<<ans[i].y<<")";
		}
		cout<<"\n";
		a++;
		return ;
	}
	for(int i=0;i<4;i++){
		int dx=x+xx[i],dy=y+yy[i];
		if(b[dx][dy]&&dx>=1&&dx<=n&&dy>=1&&dy<=m){
			b[dx][dy]=0;
			dfs(dx,dy,z+1);
			b[dx][dy]=1;
		}
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>b[i][j];
		}
	}
	cin>>x_2>>y_2>>x_1>>y_1;
	b[x_2][x_2]=0;
	dfs(x_2,x_2,1);
	if(a==0)cout<<-1;
	return 0;
}
2022/12/1 21:36
加载中...