走迷宫
2023-08-16 17:08:53
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
int n,m,f;
char a[50][50];
bool vis[50][50];
int dx[]={0,0,-1,0,1};
int dy[]={0,-1,0,1,0};
void dfs(int x,int y){
if(x==n&&y==m){
f=1;
return;
}
for(int i=1;i<=4;i++){//左上右下
int xx=dx[i]+x;
int yy=dy[i]+y;
if(xx<1||xx>n||yy<1||yy>m) continue;
if(a[xx][yy]=='#'||vis[xx][yy]==1) continue;
vis[xx][yy]=1;
dfs(xx,yy);
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
vis[1][1]=1;
dfs(1,1);
if(f==0) cout<<"NO";
else cout<<"YES";
}
全部评论 7
谢谢老师!!!
2023-08-16 来自 浙江
0真别叫我敲代码啊
2023-08-16 来自 浙江
0o( ̄︶ ̄)o
2023-08-16 来自 浙江
0谢谢老师😉
2023-08-16 来自 浙江
0老师牛波一
2023-08-16 来自 浙江
0谢谢老师
2023-08-16 来自 浙江
06
2023-08-16 来自 浙江
0
有帮助,赞一个