50pts求条
  • 板块B3625 迷宫寻路
  • 楼主514czh
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/12 13:08
  • 上次更新2024/10/12 17:41:28
查看原帖
50pts求条
1179543
514czh楼主2024/10/12 13:08
#include<bits/stdc++.h>
using namespace std;
int x[]={1,-1,0,0};
int y[]={0,0,1,-1};
int f=0;
int n,m;
char a[105][105];
void dfs(int xx,int yy){
	if(xx==n&&yy==m){
		f=1;
		return ;
	}
	for(int i=0;i<4;i++){
		if(xx+x[i]<=n&&xx+x[i]>=1&&yy+y[i]>=1&&yy+y[i]<=m&&a[xx+x[i]][yy+y[i]]=='.'){
			a[xx+x[i]][yy+y[i]]='#';
			dfs(xx+x[i],yy+y[i]);		
			if(f){
				return ;
			}
			a[xx+x[i]][yy+y[i]]='.';
		}
	}	
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int t=1;t<=m;t++){
			cin>>a[i][t];
		}
	}
	dfs(1,1);
	if(f)
	cout<<"Yes";
	else cout<<"No";
	
	return 0;
}
2024/10/12 13:08
加载中...