首页 > 代码库 > NEFU 558 迷宫寻路
NEFU 558 迷宫寻路
题目链接
简单搜索题
#include <cstdio> #include <iostream> #include <cstring> using namespace std; char c[1005][1005]; int n,m; bool vis[1005][1005]; int dx[4]={0,0,-1,1}; int dy[4]={1,-1,0,0}; void dfs(int i,int j) { if(i<0||j<0||i==n||j==m||vis[i][j]||c[i][j]==‘#‘) return ; vis[i][j]=1; for(int k=0;k<4;k++) dfs(i+dx[k],j+dy[k]); } int main() { while(scanf("%d%d",&n,&m)!=EOF) { for(int i=0;i<n;i++) scanf("%s",c[i]); memset(vis,0,sizeof(vis)); int sx=-1,sy,ex,ey; for(int i=0;i<n;i++) for(int j=0;j<m;j=j+(m-1)) { if((c[i][j]==‘*‘)&&(sx==-1)) { sx=i;sy=j; } else if(c[i][j]==‘*‘) { ex=i;ey=j; } } for(int i=0;i<n;i=i+(n-1)) for(int j=0;j<m;j++) { if((c[i][j]==‘*‘)&&(sx==-1)) { sx=i;sy=j; } else if(c[i][j]==‘*‘) { ex=i;ey=j; } } dfs(sx,sy); if(vis[ex][ey]) puts("YES"); else puts("NO"); } return 0; }
NEFU 558 迷宫寻路
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。