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

洛谷:B3625 迷宫寻路

迷宫寻路

题目描述

机器猫被困在一个矩形迷宫里。

迷宫可以视为一个 n × m n\times m n×m 矩阵,每个位置要么是空地,要么是墙。机器猫只能从一个空地走到其上、下、左、右的空地。

机器猫初始时位于 ( 1 , 1 ) (1, 1) (1,1) 的位置,问能否走到 ( n , m ) (n, m) (n,m) 位置。

输入格式

第一行,两个正整数 n , m n,m n,m

接下来 n n n 行,输入这个迷宫。每行输入一个长为 m m m 的字符串,# 表示墙,. 表示空地。

输出格式

仅一行,一个字符串。如果机器猫能走到 ( n , m ) (n, m) (n,m),则输出 Yes;否则输出 No

样例 #1

样例输入 #1

3 5
.##.#
.#...
...#.

样例输出 #1

Yes

提示

样例解释

路线如下: ( 1 , 1 ) → ( 2 , 1 ) → ( 3 , 1 ) → ( 3 , 2 ) → ( 3 , 3 ) → ( 2 , 3 ) → ( 2 , 4 ) → ( 2 , 5 ) → ( 3 , 5 ) (1,1)\to (2,1) \to (3,1) \to (3,2)\to (3,3) \to (2, 3) \to (2, 4) \to (2, 5) \to (3, 5) (1,1)(2,1)(3,1)(3,2)(3,3)(2,3)(2,4)(2,5)(3,5)

数据规模与约定

对于 100 % 100\% 100% 的数据,保证 1 ≤ n , m ≤ 100 1 \leq n, m \leq 100 1n,m100,且 ( 1 , 1 ) (1,1) (1,1) ( n , m ) (n, m) (n,m) 均为空地。

BFS板子题

#include<bits/stdc++.h>
//#include<iostream>
//#include<iomanip>
//#include<vector>
//#include<queue>
//#include<algorithm>
#define rep(i,l,r) for(int i=l;i<=r;i++)
using namespace std;
#define pii pair<int,int>
#define endl '\n'
const int M=2e5+7;
char a[200][200];
int vis[200][200];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
int n,m;
void bfs(int qx,int qy)
{queue<pii>q ;q.push({qx,qy});vis[1][1]=1;while(q.size()){auto [x,y]=q.front();q.pop();rep(i,0,3){int xx=x+dx[i],yy=y+dy[i];if(xx<1 ||xx > n || yy<1||yy>m)continue;if(vis[xx][yy] || a[xx][yy]=='#')continue;q.push({xx,yy});vis[xx][yy]=1;}}
}int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);cin>>n>>m;
rep(i,1,n)rep(j,1,m) cin>>a[i][j];bfs(1,1);
if(vis[n][m])cout<<"Yes";
else cout<<"No";return 0;
}

相关文章:

洛谷:B3625 迷宫寻路

迷宫寻路 题目描述 机器猫被困在一个矩形迷宫里。 迷宫可以视为一个 n m n\times m nm 矩阵&#xff0c;每个位置要么是空地&#xff0c;要么是墙。机器猫只能从一个空地走到其上、下、左、右的空地。 机器猫初始时位于 ( 1 , 1 ) (1, 1) (1,1) 的位置&#xff0c;问能否…...

【C#】explicit、implicit与operator

字面解释 explicit&#xff1a;清楚明白的;易于理解的;(说话)清晰的&#xff0c;明确的;直言的;坦率的;直截了当的;不隐晦的;不含糊的。 implicit&#xff1a;含蓄的;不直接言明的;成为一部分的;内含的;完全的;无疑问的。 operator&#xff1a;操作人员;技工;电话员;接线员;…...

Vue:Vuex-Store使用指南

一、简介 1.1Vuex 是什么 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态&#xff0c;并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension (opens new window)&#xf…...

对经典动态规划问题【爬台阶】的一些思考

背景 今天在做Leetcode题目时&#xff0c;做到了一道经典的动态规划问题&#xff1a;爬楼梯&#xff0c;题目的大致意思很简单&#xff0c;有个小孩正在上楼梯&#xff0c;楼梯有n阶台阶&#xff0c;小孩一次可以上1阶、2阶或3阶。实现一种方法&#xff0c;计算小孩有多少种上…...

开发一个能打造虚拟带货直播间的工具!

在当今数字化时代&#xff0c;直播带货已成为电商领域的一股强劲力量&#xff0c;其直观、互动性强的特点极大地提升了消费者的购物体验。 然而&#xff0c;随着技术的不断进步&#xff0c;传统直播带货模式正逐步向更加智能化、虚拟化的方向演进&#xff0c;本文将深入探讨如…...

汽车补光照明实验太阳光模拟器光源

汽车补光照明实验概览 汽车补光照明实验是汽车照明领域的一个重要环节&#xff0c;它涉及到汽车照明系统的性能测试和优化。实验的目的在于确保汽车在各种光照条件下都能提供良好的照明效果&#xff0c;以提高行车安全。实验内容通常包括但不限于灯光的亮度、色温、均匀性、响应…...

MediaPipe人体姿态、手指关键点检测

MediaPipe人体姿态、手指关键点检测 文章目录 MediaPipe人体姿态、手指关键点检测前言一、手指关键点检测二、姿态检测三、3D物体案例检测案例 前言 Mediapipe是google的一个开源项目&#xff0c;用于构建机器学习管道。   提供了16个预训练模型的案例&#xff1a;人脸检测、…...

树上dp之换根dp

基本概念&#xff1a; 换根dp是树上dp的一种 我们在什么时候需要用到换根dp呢&#xff1f; 当题目询问的属性&#xff0c;是需要当前结点为根时的属性&#xff0c;这个时候&#xff0c;我们就要使用换根dp 换根dp的基本思路&#xff1a; 假设题目询问的的属性为x 通常我们…...

2024/8/13 英语每日一段

Mackey says while Whole Foods has become more homogenized under Amazon, it did enable the store to do what it couldn’t have done independently. “People saw us as too expensive and out of touch with our customers,” he says. “The main thing Whole Foods n…...

Java多线程练习(1)

MultiProcessingExercise package MultiProcessingExercise120240813;public class MultiProcessingExercise {public static void main(String[] args) {/*需求&#xff1a;一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒,请用多线程模拟卖票过程并打印…...

AI高级肖像动画神器LivePortrait

文章目录 前言一、安装1.1 源码安装1.2 windows一键启动包 二、人像生成2.1 浏览器2.2 输入图像2.3 选择驱动视频2.4 生成2.5 结果 三、动物生成3.1 浏览器3.2 输入图片3.3 选择视频3.4 生成3.5 最终结果 四、软件获取 前言 最近&#xff0c;快手可灵大模型团队、中国科学技术…...

Java反射机制深度解析与实践应用

Java反射机制深度解析与实践应用 引言 Java反射是Java语言提供的一种能力&#xff0c;允许程序在运行时访问、检测和修改其自身的属性和行为。反射机制是Java面向对象编程的一大亮点&#xff0c;也是Java框架和库常用的技术之一。 反射的基本概念 反射的核心是java.lang.re…...

Oracle递归查询层级及路径

一、建表及插入数据 ocation_idlocation_nameparent_location_id1广东省NULL2广州市13深圳市14天河区25番禺区26南山区37宝安区3 建表sql&#xff1a; CREATE TABLE locations (location_id NUMBER PRIMARY KEY,location_name VARCHAR2(100),parent_location_id NUMBER ); I…...

leetcode300. 最长递增子序列,动态规划附状态转移方程

leetcode300. 最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2…...

C语言:字符串函数strcpy

该函数用于字符串的拷贝。 使用方法如下&#xff1a; #include<stdio.h> #include<string.h>int main() {char str[10];char* str1 "abcd";//strcpy(str, str1);//把str1复制到str&#xff0c;但此函数不安全所以用strcpy_sstrcpy_s(str, 10, str1);/…...

Day16-指针2

数组指针与指针数组 变量指针&#xff1a;指向变量的地址。 数组指针&#xff1a;指向数组的地址。 指针变量&#xff1a;存放其他变量地址的变量。 指针数组&#xff1a;存放数组元素指针的变量。 数组指针 概念&#xff1a;数组指针是指向数组的指针。特点&#xff1a; 先…...

数据结构(5.5_3)——并查集的进一步优化

Find操作的优化(压缩路径) 压缩路径——Find操作&#xff0c;先找到根节点&#xff0c;再将查找路径上所有结点都挂到根结点下 代码&#xff1a; //Find "查"操作优化&#xff0c;先找到根节点&#xff0c;再进行"路径压缩" int Find(int S[], int x) {…...

(回溯) LeetCode 131. 分割回文串

原题链接 一. 题目描述 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串。返回 s 所有可能的分割方案。 示例 1&#xff1a; 输入&#xff1a;s "aab" 输出&#xff1a;[["a","a","b"],[…...

【Linux】阻塞信号|信号原理|深入理解捕获信号|内核态|用户态|sigaction|可重入函数|volatile|SIGCHILD|万字详解

目录 ​编辑 一&#xff0c;常见的信号术语 二&#xff0c;信号在内核中的表示 信号标志位 Pending表 Block表 handler表 POSIX.1标准 三&#xff0c;sigset_t 信号集操作函数 sigemptyset sigfillset sigaddset sigdelset sigismember sigprocmask sig…...

基于Linux对 【进程地址空间】的详细讲解

研究背景&#xff1a; ● kernel 2.6.32 ● 32位平台 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀– 在学习操作系统中想必大家肯定都见过下面这…...

ZeroOmega代理管理实战指南:构建高效的多代理切换方案

ZeroOmega代理管理实战指南&#xff1a;构建高效的多代理切换方案 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega 在当今复杂的网络环境中&#xff0c;代理管理…...

有些路看起来很难走,其实是在带你慢慢变强

生活里&#xff0c;很多人都希望自己走的是一条轻松一点、顺利一点的路。最好努力了就能有结果&#xff0c;付出了就能被看见&#xff0c;遇到的问题也都能很快解决。可真正经历过一些事情后才会发现&#xff0c;人生并不会总按照理想的节奏前进。很多时候&#xff0c;那些让人…...

【Proteus 仿真实战】基于51单片机的智能测距与自适应报警系统设计

1. 项目背景与核心功能 最近在做一个基于51单片机的智能测距系统仿真项目&#xff0c;发现很多初学者对如何实现自适应报警功能特别感兴趣。这个项目最吸引人的地方在于它不仅仅是个简单的距离测量装置&#xff0c;而是能根据危险程度自动调整报警策略的智能系统。想象一下&…...

Captain AI帮你一次过审,上品不再被驳回!

Ozon上品审核驳回、上架后违规下架&#xff0c;是90%以上卖家都踩过的坑。很多卖家遇到上品问题&#xff0c;会用DeepSeek等通用AI查询规则&#xff0c;却往往因为信息滞后、规则解读错误&#xff0c;反复修改仍无法过审&#xff0c;白白错过新品流量黄金期。一、Captain AI能帮…...

告别除法器!用BCD8421码在Nexys4 DDR FPGA上高效驱动8位数码管(附完整Vivado工程)

基于BCD8421码的FPGA数码管驱动优化设计与实现 在数字系统设计中&#xff0c;FPGA开发者经常面临如何在有限硬件资源下实现高效数据转换的挑战。传统方法使用除法器进行二进制到十进制转换&#xff0c;不仅消耗大量逻辑资源&#xff0c;还会引入额外的时序延迟。本文将深入探讨…...

Java实战:阿里云OSS文件操作工具类封装与优化

1. 阿里云OSS基础认知与Java集成准备 第一次接触阿里云OSS时&#xff0c;我完全被文档里那些专业术语搞懵了。后来才明白&#xff0c;它本质上就是个超级网盘&#xff0c;只不过比我们平时用的网盘更专业、更稳定。想象一下&#xff0c;你有个无限容量的保险箱&#xff0c;可以…...

EPSON机器人通信避坑指南:TCP/IP协议在LS3-401S上的常见问题与解决方案

EPSON机器人通信避坑指南&#xff1a;TCP/IP协议在LS3-401S上的常见问题与解决方案 在工业自动化领域&#xff0c;EPSON LS3-401S机器人凭借其高精度和可靠性广受青睐。然而&#xff0c;在实际部署过程中&#xff0c;TCP/IP通信问题往往成为工程师们的"拦路虎"。本文…...

保姆级教程:用sw_urdf_exporter插件将Solidworks机械臂模型转为ROS可用的URDF

从Solidworks到ROS&#xff1a;机械臂URDF转换全流程实战指南 机械臂作为工业自动化和服务机器人的核心部件&#xff0c;其运动仿真在ROS生态中占据重要地位。许多工程师习惯使用Solidworks进行机械结构设计&#xff0c;却苦于如何将设计成果无缝迁移到ROS环境。本文将彻底解决…...

从宇宙到地面:解析ICRS、GCRS、CIRS、TIRS和ITRS坐标系统的层级关系与应用场景

1. 从宇宙到地球&#xff1a;坐标系统的层级关系 想象一下你站在夜晚的旷野中仰望星空。那些闪烁的星星看似固定不动&#xff0c;但实际上它们的精确位置需要用一套复杂的坐标系统来描述。从天文学研究到日常导航&#xff0c;不同的坐标系统就像一套精密的俄罗斯套娃&#xff0…...

避开SAP记账第一个坑:F-02凭证录入的5个细节与FS10N对账技巧

SAP财务实操避坑指南&#xff1a;F-02凭证录入的5个关键细节与FS10N高效对账技巧 刚接触SAP FI模块的中级用户&#xff0c;往往在完成基础培训后信心满满地开始独立操作&#xff0c;却在F-02凭证录入时频频踩坑。这些看似简单的字段选择背后&#xff0c;隐藏着财务逻辑与系统设…...