问题 2407. -- 简单的迷宫

2407: 简单的迷宫

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 0
[上一题][提交][讨论版][状态][下一题]

题目描述

简单在外面的田野上搭建了一个巨大的用栅栏围成的迷宫。幸运的是,他在迷宫的边界上留出了两段栅栏作为迷宫的出口。更幸运的是,他所建造的迷宫是一个“完美的”迷宫:即你能从迷宫中的任意一点找到一条走出迷宫的路。给定迷宫的宽W(1< =W< =38)及长H(1< =H< =100)。  2*H+1行,每行2*W+1的字符以下面给出的格式表示一个迷宫。然后计算从迷宫中最“糟糕”的那一个点走出迷宫所需的步数。(即使从这一点以最优的方式走向最靠近的出口,它仍然需要最多的步数)当然了,神牛们只会水平或垂直地在X或Y轴上移动,他们从来不走对角线。每移动到一个新的方格算作一步(包括移出迷宫的那一步)这是一个W=5,H=3的迷宫: 
+-+-+-+-+-+
|                  |
+-+  +-+  +  +
|          |  |  |
+  +-+-+  +  +
|  |          |   
+-+  +-+-+-+
如上图的例子,栅栏的柱子只出现在奇数行或奇数列。每个迷宫只有两个出口。 

输入 [jddmg.in]

第一行:  W和H(用空格隔开) 
第二行至第2*H+2行:  每行2*W+1个字符表示迷宫,其中’+’表示栅栏的柱子,’-‘和’|’表示栅栏,而空格表示可以行走的通道。

输出 [jddmg.out]

输出一个单独的整数,表示能保证牛从迷宫中任意一点走出迷宫的最小步数。 

样例输入

5 3
+-+-+-+-+-+
|         |
+-+ +-+ + +
|     | | |
+ +-+-+ + +
| |     |  
+-+ +-+-+-+

样例输出

9

提示

标签

[上一题][提交][讨论版][状态][下一题]