dfs全TLE求助
  • 板块P1238 走迷宫
  • 楼主Supa7onyz
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/4/25 17:23
  • 上次更新2024/4/25 20:10:43
查看原帖
dfs全TLE求助
1095806
Supa7onyz楼主2024/4/25 17:23
#include <iostream>
using namespace std;
int n,m;
int pic[100][100];
struct pos{
	int x,y;
};
bool vis[100][100];
pos a,b;
void dfs(pos a1,pos b1){
	cout<<'('<<a1.x<<','<<a1.y<<')';
	if (a1.x==b1.x&&a1.y==b1.y){
		cout<<endl;
		return;
	}
	cout<<'->';
	if (a1.x+1<=n&&pic[a1.x+1][a1.y]!=0&&vis[a1.x+1][a1.y]==0){
		pos f={a1.x+1,a1.y};
		dfs(f,b1);
	}
	if (a1.x-1>=1&&pic[a1.x-1][a1.y]!=0&&vis[a1.x-1][a1.y]==0){
		pos f={a1.x-1,a1.y};
		dfs(f,b1);
	}
	if (a1.y+1<=n&&pic[a1.x][a1.y+1]!=0&&vis[a1.x][a1.y+1]==0){
		pos f={a1.x,a1.y+1};
		dfs(f,b1);
	}
	if (a1.y-1>=1&&pic[a1.x][a1.y-1]!=0&&vis[a1.x][a1.y-1]==0){
		pos f={a1.x,a1.y-1};
		dfs(f,b1);
	}
	return;
}

int main(){
	vis[1][1]=1;
	cin>>n>>m;
	for (int i=1;i<=n;i++){
		for (int j=1;i<=m;j++){
			cin>>pic[i][j];
		}
	}
	cin>>a.x>>a.y>>b.x>>b.y;
	dfs(a,b);
	return 0;
}
2024/4/25 17:23
加载中...