当前位置: 首页 > news >正文

走出迷宫(多组输入bfs)

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

小明现在在玩一个游戏,游戏来到了教学关卡,迷宫是一个N*M的矩阵。

小明的起点在地图中用“S”来表示,终点用“E”来表示,障碍物用“#”来表示,空地用“.”来表示。

障碍物不能通过。小明如果现在在点(x,y)处,那么下一步只能走到相邻的四个格子中的某一个:(x+1,y),(x-1,y),(x,y+1),(x,y-1);

小明想要知道,现在他能否从起点走到终点。

输入描述:

本题包含多组数据。
每组数据先输入两个数字N,M
接下来N行,每行M个字符,表示地图的状态。
数据范围:
2<=N,M<=500
保证有一个起点S,同时保证有一个终点E.

输出描述:

每组数据输出一行,如果小明能够从起点走到终点,那么输出Yes,否则输出No

示例1

输入

复制3 3 S.. ..E ... 3 3 S## ### ##E

3 3
S..
..E
...
3 3
S##
###
##E

输出

复制Yes No

Yes
No

分析:

注意多组输入,记得初始化

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
struct fx{ll x,y;
};
ll n,m;
queue<fx> q;
char g[502][502];
ll used[502][502];
ll dx[]={0,1,0,-1},dy[]={1,0,-1,0};
void init()
{queue<fx> q1;q=q1;memset(used,0,sizeof(used));
}
void bfs()
{while(q.size()){auto a=q.front();q.pop();for(ll i=0;i<4;i++){ll x=a.x+dx[i],y=a.y+dy[i];if(x<1||x>n||y<1||y>m)continue;if(used[x][y])continue;if(g[x][y]=='#')continue;used[x][y]=1;if(g[x][y]=='E'){cout<<"Yes"<<'\n';return ;}q.push({x,y});}}cout<<"No"<<'\n';
}
void solve()
{while(cin>>n>>m){init();for(ll i=1;i<=n;i++){for(ll j=1;j<=m;j++){cin>>g[i][j];if(g[i][j]=='S'){q.push({i,j});used[i][j]=1;}}}bfs();}
}
int main()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);solve();return 0;
}

http://www.lryc.cn/news/121152.html

相关文章:

  • Linux系统编程-终端、进程组、会话
  • Linux部分文件操作记录
  • Android系统-进程-Binder2-Java层
  • 体渲染原理及WebGL实现【Volume Rendering】
  • VUE3组件
  • 【iOS】autoreleasepool
  • 0基础学习VR全景平台篇 第80篇:Insta360 影石如何直播推流
  • 大语言模型之三 InstructGPT训练过程
  • ChatGPT在自动化报告和数据分析中的应用如何?
  • 面试热题(三数之和)
  • 在idea运行python文件
  • SQL - limit
  • 11. Redis基础知识
  • list模拟实现【引入反向迭代器】
  • 【华为OD机试】字符串变换最小字符串【2023 B卷|100分】
  • ARTS 挑战打卡的第8天 ---volatile 关键字在MCU中的作用,四个实例讲解(Tips)
  • 第二课-一键安装SD-Stable Diffusion 教程
  • Vue3 动态列 <el-table-column> 实现 formatter 的两种方法
  • 室温超导是什么?有哪些应用场景?
  • Windows+VMware+Ubuntu+Anaconda+VMware Tools
  • Xray配置文件详解
  • flink优化
  • docker: ERROR: Couldn‘t connect to Docker daemon at http+docker://localhost
  • 大模型在金融医疗、生命系统和物理仿真领域的创新应用探索
  • tensorflow / tensorflow-gpu cuda cudNN tensorRT 安装,启用显卡加速
  • 计算机视觉中的Transformer
  • UVA-1601 万圣节后的早晨 题解答案代码 算法竞赛入门经典第二版
  • nacos 403错误
  • Python遥感图像处理应用篇(三十四):GDAL+Scikit-image+GLCM计算遥感图像纹理特征
  • solr迁移到另一个solr中(docker单机)