20分求大佬求助
  • 板块P1238 走迷宫
  • 楼主ajahjahah
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/7/24 11:07
  • 上次更新2023/11/4 13:28:55
查看原帖
20分求大佬求助
357378
ajahjahah楼主2021/7/24 11:07
#include<bits/stdc++.h>
using namespace std;
struct point{
	int x,y;
}got[200];
int n,m,maze[15][15],sx,sy,ex,ey,yes=0;
void dfs(int x,int y,int now){
	if(x==ex&&y==ey){
		for(int i=1;i<now;i++){
			printf("(%d,%d)",got[i].x,got[i].y);
			if(i<now){
				cout<<"->";
			}
		}
		printf("(%d,%d)",ex,ey);
		yes=1;
		cout<<endl;
	}
	else if(!maze[x][y]){
		return;
	}
	else{
		maze[x][y]=0;
		got[now].x=x;
		got[now].y=y; 
		dfs(x+1,y,now+1);
		dfs(x-1,y,now+1);
		dfs(x,y-1,now+1);
		dfs(x,y+1,now+1);
		maze[x][y]=1;
	}
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>maze[i][j];
		}
	}
	cin>>sx>>sy>>ex>>ey;
	dfs(sx,sy,1);
	if(!yes){
		cout<<-1;
	}
	return 0;
}

只A了前两个点

可是过了样例

2021/7/24 11:07
加载中...