6264:走出迷宫

  • 查看
  • 提交
  • 统计
  • 提问

总时间限制:

1000ms

内存限制:

65536kB

描述

当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 
假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。

输入

第一行是两个整数n和m(1<=n,m<=100),表示迷宫的行数和列数。
接下来n行,每行一个长为m的字符串,表示整个迷宫的布局。字符'.'表示空地,'#'表示墙,'S'表示起点,'T'表示出口。

输出

输出从起点到出口最少需要走的步数。

样例输入

3 3
S#T
.#.
...

样例输出

6

这道题跟仙岛求药差不多,还简单了,我一会儿就写好了代码,就不用解释了,你可以看一下我写的“宽搜练习——仙岛求药/【NOI】2.5基本算法之搜索 2727:仙岛求药”,我只不过改了一点点就对了:

#include<bits/stdc++.h>
using namespace std;
int front,rear,r,c,dx[4]={0,1,0,-1},dy[4]={1,0,-1,0},q[10010][3],lx,ly,mx,my;
char a[110][110];
void bfs();
int main()
{cin>>r>>c;if(r==0&&c==0)return 0;for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){cin>>a[i][j];if(a[i][j]=='S')lx=i,ly=j;if(a[i][j]=='T')mx=i,my=j;}front=0,rear=1;q[rear][0]=lx,q[rear][1]=ly,q[rear][2]=0;a[lx][ly]=1;bfs();cout<<q[rear][2];return 0;
}
void bfs()
{while(front<rear){front++;for(int i=0;i<4;i++){int xx=q[front][0]+dx[i];int yy=q[front][1]+dy[i];if(xx>=1&&xx<=r&&yy>=1&&yy<=c&&a[xx][yy]!='#'){rear++;q[rear][0]=xx;q[rear][1]=yy;q[rear][2]=q[front][2]+1;a[xx][yy]='#';if(xx==mx&&yy==my)return;}}}
}

【NOI】6264:走出迷宫/ 2.5基本算法之搜索相关推荐

  1. 信息学奥赛一本通 1254:走出迷宫 | OpenJudge NOI 2.5 6264:走出迷宫

    [题目链接] ybt 1254:走出迷宫 OpenJudge NOI 2.5 6264:走出迷宫 [题目考点] 1. 广搜 迷宫问题 [解题思路] 广搜,迷宫问题模板题. 当数据量很小时,用深搜的方法 ...

  2. NOI题库2.5 6264 走出迷宫

    描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路. 输入 第一行 ...

  3. 【NOI】6264 走出迷宫

    描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路. 输入 第一行 ...

  4. 6264:走出迷宫(DFS和BFS)

    描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路. 输入 第一行 ...

  5. 6264:走出迷宫——BFS

    描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路. 输入 第一行 ...

  6. 6264:走出迷宫 (BFS,板子题)

    描述 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单. 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路. 输入 第一行 ...

  7. POJ 6264:走出迷宫

    " Ctrl AC!一起 AC!" 题目:忘题戳这 分析:一道典型的寻路广搜模板题,见博主的往日分析 AC代码: #include<iostream> #include ...

  8. 搜索4--noi6264:走出迷宫

    搜索4--noi6264:走出迷宫 一.心得 可以去看看别人的代码,吸收精华 二.题目 6264:走出迷宫 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 当 ...

  9. 信息学奥赛一本通(1254:走出迷宫)

    1254:走出迷宫 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 9105     通过数: 4245 [题目描述] 当你站在一个迷宫里的时候,往往会被错综复杂的 ...

最新文章

  1. Cocoapods的安装以及使用(2)
  2. JAVA不可变List的实现
  3. 回溯法(深度优先搜索)
  4. 微信公众号 获得多客服使用权限
  5. 避免活跃性危险(第十章)
  6. java五子棋源代码_java 五子棋游戏源码
  7. $.grep()函数
  8. 我的内容管理系统(CMS)寻找历程 -- Mambo出鞘,谁与争锋?
  9. gitlab ci php 构建,GitLab CI的入门搭建
  10. Windows的图形设备接口(GDI)入门 上篇
  11. 安装ORK功能包踩坑之路和解决方案
  12. 学生成绩管理系统设计java_java学生成绩管理系统设计与实现
  13. 某android广告SDK逆向分析总结
  14. 利用临时文件恢复PowerPoint(PPT)文件
  15. 51单片机 (九)定时器
  16. JavaScript时间日期
  17. 计算机学硕调剂分数,计算机考研调剂的一些经验
  18. 蚂蚁金服智能推荐引擎解决方案与实践 1
  19. NGUI渲染机制——从顶点和UV说起
  20. java与python交互_Java与Python

热门文章

  1. display:inline inline-block block
  2. python怎么实现检验_python实现KMO检验和Bartlett's球形检验
  3. 怎么把html变成桌面壁纸,怎么把抖音视频设置成桌面 抖音视频设置壁纸教程
  4. Iterative Answer Prediction with Pointer-Augmented Multimodal Transformers for TextVQA
  5. 工业以太网交换机在高速公路隧道监控系统
  6. Canal binlog 日志管理器与GTID简介
  7. java的格式输入语句是_java输入输出语句是什么
  8. 帮我在网上搜索一些小强升职记的读书笔记
  9. 【挑战程序设计竞赛】- 2.2贪心法(硬币最少、区间覆盖、字典序最小、标记最少、木板切割)
  10. 安卓开发:网络图片下载和显示