向各位大佬求助(B3625 迷宫寻路)
查看原帖
向各位大佬求助(B3625 迷宫寻路)
856127
Brandon_Sym楼主2024/7/4 21:09

本菜鸡的代码如下,5个AC,五个TLE,求各位指点;

#include<bits/stdc++.h>
using namespace std;
int a[110][110];
int n,m,flag=0;
void hhh(int x,int y){
	if(flag==1){
		return ;
	}
	if(x==n&&y==m){
		flag=1;
		return ;
	}
	if(a[x+1][y]==1&&x+1>=1&&x+1<=n&&y>=1&&y<=m){
		a[x][y]=0;
		hhh(x+1,y);
		a[x][y]=1;
	}
	if(flag==1){
		return ;
	}
	if(a[x-1][y]==1&&x-1>=1&&x-1<=n&&y>=1&&y<=m){
		a[x][y]=0;
		hhh(x-1,y);
		a[x][y]=1;
	}
	if(flag==1){
		return ;
	}
	if(a[x][y+1]==1&&x>=1&&x<=n&&y+1>=1&&y+1<=m){
		a[x][y]=0;
		hhh(x,y+1);
		a[x][y]=1;
	}
	if(flag==1){
		return ;
	}
	if(a[x][y-1]==1&&x>=1&&x<=n&&y-1>=1&&y-1<=m){
		a[x][y]=0;
		hhh(x,y-1);
		a[x][y]=1;
	}
	if(flag==1){
		return ;
	}
	return ;
}
int main(){
	
	cin>>n>>m;
	string c;
	for(int i=1;i<=n;++i){
		cin>>c;
		for(int j=1;j<=m;++j){	
			if(c[j-1]=='.'){
				a[i][j]=1;
			}
			else a[i][j]=0;
		}
	}
	hhh(1,1);
	if(flag==1){
		cout<<"Yes";
	}
	else cout<<"No";
	return 0;
}

码风 离谱 清奇,请各位原谅!

2024/7/4 21:09
加载中...