走出迷宮(多組輸入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.pswp.cn/news/35990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/35990.shtml
英文地址,請注明出處:http://en.pswp.cn/news/35990.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談人工智能技術與物聯網結合帶來的好處

物聯網是指通過互聯網和各種技術將設備進行連接&#xff0c;實時采集數據、交互信息的網絡&#xff0c;對設備實現智能化自動化感知、識別和控制&#xff0c;給人們帶來便利。 人工智能是計算機科學的一個分支&#xff0c;旨在研究和開發能夠模擬人類智能的技術和方法。人工智能…

Redis: 詳解、使用教程和示例

Redis: 詳解、使用教程和示例 什么是 Redis&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一個開源的、內存數據存儲系統&#xff0c;它可以用作數據庫、緩存和消息中間件。它支持多種數據結構&#xff0c;如字符串、哈希表、列表、集合、有序集合等…

Hadoop組件

前言 Hadoop 是一個能夠對大量數據進行分布式處理的軟件框架。具有可靠、高效、可伸縮的特點。 HDFS&#xff08;hadoop分布式文件系統&#xff09; 是hadoop體系中數據存儲管理的基礎。他是一個高度容錯的系統&#xff0c;能檢測和應對硬件故障。

后院失火、持續虧損!Mobileye半年報「不回避」競爭壓力

"客戶在2023年上半年非常謹慎&#xff0c;導致增長率低于正常水平&#xff0c;但我們已經看到下半年回暖趨勢&#xff0c;預計下半年交付將比去年同期增長16%&#xff0c;遠高于上半年。"這是Mobileye在近日公司半年報發布會上的預判。 公開數據顯示&#xff0c;今年…

Python 實現Selenium錄屏的一種方法(圖片整合成動態圖)

由于UI層自動化的不穩定性&#xff0c;經常會遇到執行中斷或用例失敗的問題&#xff0c;以下是一些常見的措施。 1.詳細的日志 2.定位出錯時截圖 3.Pytest的緩存機制(可以記錄成功了哪些失敗了哪些) 4.自動重試機制(如pytest-rerunfailures) 5.用例錄像 用例錄像是最直觀的一…

2023網絡安全常用工具匯總(附學習資料+工具安裝包)

幾十年來&#xff0c;攻擊方、白帽和安全從業者的工具不斷演進&#xff0c;成為網絡安全長河中最具技術特色的燈塔&#xff0c;并在一定程度上左右著網絡安全產業發展和演進的方向&#xff0c;成為不可或缺的關鍵要素之一。 話不多說&#xff0c;網絡安全10款常用工具如下 1、…

Opencv4基于C++基礎入門筆記:圖像 顏色 事件響應 圖形 視頻 直方圖

效果圖??????&#xff1a;opencv人臉識別效果圖(請叫我真愛粉) 先看一下效果圖勾起你的興趣&#xff01; 文章目錄&#xff1a; 一&#xff1a;環境配置搭建 二&#xff1a;圖像 1.圖像讀取與顯示 main.cpp 運行結果 2.圖像色彩空間轉換 2.1 換色彩 test.h …

感受RFID服裝門店系統的魅力

嘿&#xff0c;親愛的時尚追隨者們&#xff01;今天小編要給你們帶來一股時尚新風潮&#xff0c;讓你們感受一下什么叫做“RFID服裝門店系統”&#xff0c;這個超酷的東西&#xff01; 別著急&#xff0c;先別翻白眼&#xff0c;小編來解釋一下RFID是什么玩意兒。它是射頻識別…

云計算——存儲虛擬化功能

作者簡介&#xff1a;一名云計算網絡運維人員、每天分享網絡與運維的技術與干貨。 座右銘&#xff1a;低頭趕路&#xff0c;敬事如儀 個人主頁&#xff1a;網絡豆的主頁????? 目錄 前期回顧 前言 一.存儲虛擬化功能 1.精簡磁盤和空間回收 2.快照 &#xff08;1&a…

面試熱題(反轉字符串中的單詞)

給你一個字符串 s &#xff0c;請你反轉字符串中 單詞 的順序。 單詞 是由非空格字符組成的字符串。s 中使用至少一個空格將字符串中的 單詞 分隔開。 返回 單詞 順序顛倒且 單詞 之間用單個空格連接的結果字符串。 注意&#xff1a;輸入字符串 s中可能會存在前導空格、尾隨空格…

JVM——棧和堆概述,以及有什么區別?

方法棧 方法棧并不是某一個 JVM 的內存空間&#xff0c;而是我們描述方法被調用過程的一個邏輯概念。 在同一個線程內&#xff0c;T1()調用T2()&#xff1a; T1()先開始&#xff0c;T2()后開始&#xff1b;T2()先結束&#xff0c;T1()后結束。 堆和棧概述 從英文單詞角度來…

Maven介紹,部署在eclipse中

目錄 一.Maven介紹 1&#xff0c;什么是maven&#xff1f; 2. 為什么maven會在企業中大量使用&#xff1f; 3.沒有使用maven的前后區別? 4.maven在Java開發中的實際效果圖 二.maven部署在eclipse中 1.下載maven在其官方網址下載&#xff08;當然實際下載也要根據個人的…

服務器安裝Tomcat

下載Tomcat 下載地址在這&#xff1a; Tomcat官網 下載完成以后把壓縮包上傳到服務器中&#xff08;我傳到了www/java&#xff09;,進行解壓(解壓到)&#xff0c;如果沒有進行指定解壓到哪里&#xff0c;默認是到root文件夾中 tar -zxvf /www/java/apache-tomcat-9.0.103.tar.…

統計學補充概念03-核密度估計

概念 核密度估計&#xff08;Kernel Density Estimation&#xff0c;簡稱 KDE&#xff09;是一種非參數統計方法&#xff0c;用于估計隨機變量的概率密度函數&#xff08;Probability Density Function&#xff0c;PDF&#xff09;。它通過在每個數據點周圍放置核函數&#xf…

day 10 | 232.用棧實現隊列、 225. 用隊列實現棧

目錄&#xff1a; 解題及思路學習 232.用棧實現隊列 https://leetcode.cn/problems/implement-queue-using-stacks/ 模擬題&#xff0c;用兩個棧來實現隊列的功能。 class MyQueue { public:stack<int> stIn;stack<int> stOut;/** Initialize your data struc…

HCIP學習--BGP3

目錄 前置內容 BGP下一跳的修改問題 BGP的屬性 配置 PrefVal權重屬性 負載分擔 LocPrf 負載分擔 NextHop AS-PATH Ogn 配置 MED 配置 BGP選路規則 BGP的社團屬性 配置及解釋 前置內容 HCIP學習--BGP1_板栗妖怪的博客-CSDN博客 HCIP學習--BGP2_板栗妖怪的博客…

031_小馳私房菜_MTK平臺Camera基本流程,日志信息打印

這篇文章主要介紹mtk平臺,camera基本流程的日志信息打印。針對下面幾點展開: 一) camera打開流程; 二) 幀請求 && 幀回調; 三) 拍照; MTK平臺camera模塊,如果想要打開更多日志,一般需要先設置 adb shell setprop "vendor.debug.camera.log" 1 然后…

STM32控制SG90舵機原理及代碼

STM32控制SG90舵機原理及代碼 一.SG90舵機原理二.控制SG90舵機三.代碼實例3.1 配置定時器3.2 main 函數 四.實驗現象 一.SG90舵機原理 舵機的運用還是比較廣泛的&#xff0c;那么舵機工作原理是什么呢&#xff0c;一般來說我們給舵機一個信號他就能工作了&#xff0c;那么這個…

00 - 環境配置

查看所有文章鏈接&#xff1a;&#xff08;更新中&#xff09;GIT常用場景- 目錄 文章目錄 1. 環境說明2. 安裝配置2.1 配置user信息2.2 config的三個作用域 3. 建git倉庫3.1 把已有的項目代碼納入git管理3.2 新建的項目直接用git管理3.3 配置local的user和email3.4 優先級&…

Redis_緩存1_緩存類型

14.redis緩存 14.1簡介 穿透型緩存&#xff1a; 緩存與后端數據交互在一起&#xff0c;對服務端的調用隱藏細節。如果從緩存中可以讀到數據&#xff0c;就直接返回&#xff0c;如果讀不到&#xff0c;就到數據庫中去讀取&#xff0c;從數據庫中讀到數據&#xff0c;也是先更…