超时!求助!
  • 板块B3625 迷宫寻路
  • 楼主OIYu
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/12 13:34
  • 上次更新2024/8/12 13:51:42
查看原帖
超时!求助!
1413253
OIYu楼主2024/8/12 13:34
#include<bits/stdc++.h>
using namespace std;
int n,m;
char mp[105][105];
int a[4]={0,0,-1,1};
int b[4]={1,-1,0,0};
bool bo=0;
bool judge(int x,int y){
	if(x<0||x>=n||y<0||y>=m||mp[x][y]=='#')return 0;
	return 1;
}
void dfs(int x,int y){
	if(x==n-1&&y==m-1){
		bo=1;
		return;
	}
	for(int i=0;i<4;i++){
		int xx=x+a[i];
		int yy=y+b[i];
		if(!judge(xx,yy))continue;
		mp[x][y]='#';
		dfs(xx,yy);
		mp[x][y]='.';
	}
}
int main(){
	cin>>n>>m;
	for(int i=0;i<n;i++){
		scanf("%s",mp[i]);
	}
	dfs(0,0);
	if(bo)cout<<"Yes";
	else cout<<"No";
	return 0;
} 
2024/8/12 13:34
加载中...