M - 诡异的楼梯 HDU - 1180

Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向.

比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向.Harry发现对他来说很难找到能使得他最快到达目的地的路线,这时Ron(Harry最好的朋友)告诉Harry正好有一个魔法道具可以帮助他寻找这样的路线,而那个魔法道具上的咒语,正是由你纂写的.

Input 测试数据有多组,每组的表述如下:

第一行有两个数,M和N,接下来是一个M行N列的地图,’*‘表示障碍物,’.‘表示走廊,’|‘或者’-‘表示一个楼梯,并且标明了它在一开始时所处的位置:’|‘表示的楼梯在最开始是竖直方向,’-'表示的楼梯在一开始是水平方向.地图中还有一个’S’是起点,‘T’是目标,0<=M,N<=20,地图中不会出现两个相连的梯子.Harry每秒只能停留在’.'或’S’和’T’所标记的格子内.

Output 只有一行,包含一个数T,表示到达目标的最短时间.

注意:Harry只能每次走到相邻的格子而不能斜走,每移动一次恰好为一分钟,并且Harry登上楼梯并经过楼梯到达对面的整个过程只需要一分钟,Harry从来不在楼梯上停留.并且每次楼梯都恰好在Harry移动完毕以后才改变方向.

Sample Input

5 5
**..T
**.*.
..|..
.*.*.
S.... Sample Output
7

地图如下:

思路如下

  • 题意:人从起点 ——> 出发点,中间有梯子的地方可以走梯子,如果人 走到梯子旁边的点整好与梯子同向,这个时候可以只花费一个单位时间,走过梯子这个一格并且到达对面的那一个格子;如果与梯子不在同一个方向上,那么 “人”就需要 等待 一个单位时间,然后就与梯子同向了,那么,就可花费一个单位时间到达对面了。
  • 思路:这一题如果没有梯子,那么这一题非常简单,可是有两种不同方向的梯子且随着时间回旋转,这一题的难点就是对梯子的特殊考虑

    M - 诡异的楼梯 HDU - 1180(BFS + 在某个点等待一下 / 重复走该点)的更多相关文章

    1. 诡异的楼梯 HDU - 1180

      Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向, ...

    2. HDU 1180 (BFS搜索)

      题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1180 题目大意:迷宫中有一堆楼梯,楼梯横竖变化.这些楼梯在奇数时间会变成相反状态,通过楼梯会顺便到达 ...

    3. HDU 1180 诡异的楼梯(超级经典的bfs之一,需多回顾)

      传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1180 诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)     ...

    4. hdu 1180 诡异的楼梯 (bfs)

      诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Sub ...

    5. HDU 1180 诡异的楼梯(BFS)

      诡异的楼梯 Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status ...

    6. hdu 1180诡异的楼梯(bfs)

      诡异的楼梯 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submis ...

    7. hdu 1180:诡异的楼梯(BFS广搜)

      诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

    8. HDU 1180 诡异的楼梯【BFS/楼梯随时间变化】

      诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Submis ...

    9. hdu 1180 诡异的楼梯

      诡异的楼梯 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Subm ...

    随机推荐

    1. Python 【基础常识概念】

      深浅拷贝 浅copy与deepcopy 浅copy: 不管多么复杂的数据结构,浅拷贝都只会copy一层 deepcopy : 深拷贝会完全复制原变量相关的所有数据,在内存中生成一套完全一样的内容,我们 ...

    2. 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二)

      注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一). 前面搭建好了自己本地的S ...

    3. Fortify Audit Workbench 笔记 Header Manipulation

      Header Manipulation Abstract HTTP 响应头文件中包含未验证的数据会引发 cache-poisoning. cross-site scripting. cross-use ...

    4. 自动控制理论的MATLAB仿真实例(二)

      %求方程的解 x=sym('x'); fx=(3*x*x+2*x)*(x*x+2.32*x+4)-(2*x+2.32)*(x*x*x+x*x) fx = 

    5. 公共卫生GIS共享服务平台

      1   系统详细设计 1.1 GIS共享服务管理 1.1.1 概述 GIS共享服务管理是本系统的重要组成部分,它实现了对各类地图数据.业务资源数据的集成统一管理,提供了一个平台级的管理解决方案,能够往 ...

    6. macOS Catalina 升级软件问题

      最近升级macOS Catalina系统,升级失败时多尝试几次就可以执行成功了,在使用过程中发现以下问题,大家谨慎升级!!! 存在软件启动不兼容,不存在已软件激活失效问题. 有道词典不兼容,启动异常 ...

    7. vscode 新版设置备份20200221 settings.json

      vscode 新版设置备份20200221 { "sync.gist": "9e6a5f7e8c52047b03c8732ff88aab0e", "s ...

    8. PLINQ 并行操作Linq

      C#并行编程-PLINQ:声明式数据并行   目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 C#并行编程-线程同步原语 C#并行编程-P ...

    9. 14. java基于excel模板导出excel=>使用jxls最新版(注意点)

      注意点:如下: jxls官网:http://jxls.sourceforge.net/getting_started.html

    10. angular的性能分析 -随记

      $watch 的实现原理和性能分析 只有双向绑定的 scope 才会被加入$watch队列,或者手动绑定$watch的$scope 所有放在 $scope 中的变量或函数都被加入到了$watch队列当 ...