/ Vijos / 题库 /

寻宝

寻宝

时间限制:1秒  内存限制:256M


【题目描述】

  寻宝者正在一片迷阵中寻宝,该迷阵的布局可以表示为一个N行M列的矩阵。每个格子可以是以下几种之一:

  ◆障碍格子,其中矗立着一个与格子大小一样的正方形障碍柱(用 '#' 表示)。
  ◆寻宝者的起始位置(用 'S' 表示)。
  ◆宝物所在的位置,也就是寻宝者必须到达的格子(用 'E' 表示)。
  ◆空格子(用 '.' 表示)。

  寻宝者随身携带着一套“传送门装置”,包含入门器、出门器和一把用于建立传送门的梭镖枪。于是,在每次移动中,他可以执行以下操作之一:

  ◆上下左右移动到相邻的非障碍格子中。此移动耗时一个单位时间。
  ◆用梭镖枪朝上下左右四个方向之一发射一次,把入门器钉一个障碍柱一侧,再选择另一个方向发射把出门器钉在另一个障  碍柱的一侧(这两次射击不花时间)。按操作1先移动到与入门器一侧相邻的空格子,然后进入门器花一个单位时间移动到出门器一侧相邻的非障碍格子。

  寻宝者想知道找到宝物的最少时间,即到达标记为'E'的格子的时间。

【输入格式】

  输入的第一行包含正整数 \(N\) 和 \(M(4≤N,M≤500)\),即任务中的数字。接下来的N行中的每一行包含 \(M\) 个字符,描述迷阵的布局。请注意:迷阵的四周总是有墙,并且字母 'S' 和 'E' 在矩阵中只出现一次。

【输出格式】

  输出找到宝物的最少时间,或者如果无法找到则输出 "Fail"。

【输入输出样例1】

 Input

4 4
####
#.E#
#S.#
####

 Output

2

【输入输出样例2】

 Input

6 8
########
#.##..E#
#S.##..#
#..#...#
#.....##
########

 Output

4

【样例1说明】

  ◆如下图:寻宝者先向左发射一次,把将入门器被钉在(3,1)障碍柱的右侧,再向下发射一次把出门器被钉在(6,2)障碍柱的上侧,然后从(3,1)的入门器进,从(6,2)出门器出来到非障碍格子(5,2),花费1单位时间。
说明

  ◆如下图:寻宝者先向下发射一次,把入门器被钉在(6,2)障碍柱的上侧,再向右发射一次把出门器被钉在(5,7)障碍柱的左侧,然后进入坐标(6,2)的入门器进,从(5,7)的出门器出来到达非障碍格子(6,6),花费1单位时间。
说明

  ◆如下图:寻宝者先向右发射一次,把入门器被钉在(5,7)障碍柱的左侧,再向上发射一次把出门器被钉在(1,6)障碍柱的下侧,然后进入(5,7)的入门器,并从(1,6)出门器出来到达非障碍格子(2,6),花费1单位时间。
说明

  ◆如下图:寻宝者向右走入(2,7),到达目标格子。
说明

  因此寻宝者共需要 4 个单位时间到达宝物所在格子。

【输入输出样例3】

 Input

4 5
#####
#S#.#
###E#
##### 

 Output

Fail

【测试点性质】

  对对于50%分的数据,满足 \(4≤N,M≤15\)。
  对于100%的数据,保证 \(4≤N,M≤500\)。

【来源】

  Mr.he

信息

ID
3263
难度
9
分类
图结构 | 最短路 点击显示
标签
(无)
递交数
4
已通过
1
通过率
25%
被复制
2
上传者