问题描述

给你一个 n 行 m 列的二维迷宫。’S’表示起点,’T’ 表示终点,’#’ 表示墙壁,’.’ 表示平地。你需要从 ‘S’ 出发走到 ‘T’,每次只能上下左右走动,并且不能走出地图的范围以及不能走到墙壁上。请你计算出走到终点需要走的最少步数。
输入格式
第一行输入 n, m 表示迷宫大小。(1≤n,m≤100)
接下来输入 n 行字符串表示迷宫,每个字符串长度为 m。(地图保证有且仅有一个终点,一个起始点)
输出格式
输出走到终点的最少步数,如果不能走到终点输出 -1,占一行。
样例输入
3 3
S.#
.#.
.#T
样例输出
-1


AC代码

#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;
queue<int> qx;
queue<int> qy;
int n, m;
int mp[110][110];
int sx, sy, ex, ey;
int ax[10] = {0, 0, 1, -1};
int ay[10] = {-1, 1, 0, 0};
int bfs(int x, int y) {qx.push(x);qy.push(y);mp[x][y] = 0;while (!qx.empty()) {int xx;int yy;xx = qx.front();yy = qy.front();qx.pop();qy.pop();for (int i = 0; i < 4; i++) {int tx = xx + ax[i];int ty = yy + ay[i];if (tx >= 0 && ty >= 0 && tx < n && ty < m && mp[tx][ty] == -1) {mp[tx][ty] = mp[xx][yy] + 1;qx.push(tx);qy.push(ty);}}}
}
int main() {memset(mp, -1, sizeof(mp));cin >> n >> m;for (int i = 0; i < n; i++) {for (int p = 0; p < m; p++) {char a;cin >> a;if (a == 'S') {sx = i;sy = p;}if (a == 'T') {ex = i;ey = p;}if (a == '#') {mp[i][p] = -2;}}}bfs(sx, sy);if (mp[ex][ey]!=- 1)cout << mp[ex][ey];else cout << "-1";return 0;}

计蒜客习题:走迷宫2相关推荐

  1. 计蒜客习题:蒜厂年会

    问题描述 蒜厂要开年会了,所有的员工都要参加. 每两个员工之间都有一个亲密度.在同一个项目工作过的员工之间的亲密度为 1.如果 A 和 B.B 和 C 均在同一个项目中工作过,而 A 和 C 没有,那 ...

  2. 计蒜客习题:幼儿园买玩具

    问题描述 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具.已知玩具商店一共卖 k 种玩具,编号为 1,2,3,- ...

  3. 计蒜客习题:新年礼物

    问题描述 新年了,蒜厂 BOSS 要给小蒜头们发新年礼物,其中有一份神秘大奖,但却不知道应该发给谁.于是,蒜厂 BOSS 打算让大家玩一个游戏. 一共有 n 个字符串排成一排,蒜头需要从中按顺序选取一 ...

  4. [计蒜客]马走日-c++

    hi!大家好: 最近几天看了问答,发现有一些人在刷采纳,我就不说是谁了,建议官方处理一下: 好了,回到正题,最近几天,有个朋友问我了很多BFS的题 我打着打着就有点蒙,难的题对了,简单的题错了...就 ...

  5. 计蒜客:求迷宫解法方案数---dfs

    题目描述: 小信是一个玩迷宫的高手,天下还没有能难住他的迷宫.但是总有人喜欢刁难小信,不停的给小信出难题.这个出题的人很聪敏,他知道天下还没有能难住小信的迷宫.所以他便转换思维问小信,在不走重复路径的 ...

  6. 【计蒜客习题】消除字符串

    问题描述 蒜头君喜欢中心对称的字符串,即回文字符串.现在蒜头君手里有一个字符串 SS,蒜头君每次都会进行这样的操作:从 SS 中挑选一个回文的子序列,将其从字符串 SS 中去除,剩下的字符重组成新的字 ...

  7. 计蒜客习题:恋爱纪念日(C语言)

    蒜头君和花椰妹谈恋爱啦.祝福他们吧. 蒜头君想知道第他们的第 100100 天,200200 天 ... 纪念日.输入格式输入 44 个整数 y,m,d,ky,m,d,k,表示他们在一起的日期,保证是 ...

  8. 计蒜客习题:迷阵突围

    问题描述 蒜头君陷入了坐标系上的一个迷阵,迷阵上有 n 个点,编号从 1 到 n.蒜头君在编号为 1 的位置,他想到编号为 n 的位置上.蒜头君当然想尽快到达目的地,但是他觉得最短的路径可能有风险,所 ...

  9. 计蒜客习题:骑车比赛

    问题描述 蒜头君准备去参加骑车比赛,比赛在 n 个城市间进行,编号从 1 到 n.选手们都从城市 1 出发,终点在城市 n. 已知城市间有 m 条道路,每条道路连接两个城市,注意道路是双向的.现在蒜头 ...

最新文章

  1. 力挺Python!同是程序员,为啥同事年前就实现了财务自由?
  2. 潘建伟团队进行人类首次洲际量子通信 都发送了什么
  3. struts2常见报错
  4. 创建一个HTML文件
  5. CodeForces - 765D Artsem and Saunders(数学化简+构造+思维)
  6. 牛客练习赛 63 F-牛牛的树行棋
  7. LeetCode 605. 种花问题
  8. Spring Data JPA 从入门到精通~JpaSpecificationExecutor的使用方法
  9. STM32-RTC实时时钟
  10. 中兴通讯午后复牌:A股涨停 港股盘中涨逾53%
  11. php跨域传sessionid,php中http与https跨域共享session的解决方法
  12. java web部署文档_javaweb项目实施部署文档
  13. 库克考虑卸任苹果CEO,谁会是下一任接班人?
  14. Win8.1/Win10在某些程序输入中文变成问号的解决方法
  15. 时差,不同国家之间的大概时差
  16. kubesphere K8S Kubeedge 安装配置菜鸟级指导
  17. 特斯拉“深陷”召回/监管调查,“高田气囊门”是前车之鉴
  18. centos配置linuxptp
  19. 企业上云是什么?有什么优点
  20. 《MFC如何添加子对话框》

热门文章

  1. python学习 论语提取原文
  2. 土壤水分传感器的工作原理和应用环境
  3. Qt知识点梳理 —— 国际化 QtLinguist 应用(2)
  4. java使用selenium实现模拟浏览器操作API大全 模拟登录
  5. sql取上个月年月_SQL Server 取日期时只要年月或年月日
  6. 基于element UI的省(市)(区)三级(二级)(一级)联动数据以及使用方法
  7. Html5笔记之第一天
  8. 2018ccpc吉林 C:JUSTICE
  9. 【MySQL】MySQL 的连接(内、左、右、全)
  10. Java,Android,窥探组合的用法。AndroidUI组合设计模式,Java组合设计模式