编程介的小学生 2019-12-18 16:54 采纳率: 20.5%
浏览 169

迷宫出逃 程序如何来编写呢

Problem Description
小明又一次陷入了大魔王的迷宫,在无人机的帮忙下,小明获得了整个迷宫的草图。

不同于一般的迷宫,魔王在迷宫里安置了机关,一旦触碰,那么四个方向所在的格子,将翻转其可达性(原先可通过的格子不可通过,反之亦然,机关可以反复触发)。为了防止小明很容易地出逃,魔王在临走前把钥匙丢在了迷宫某处,只有拿到钥匙,小明才能开门在出口处离开迷宫。

万般无奈之下,小明想借助聪明的你,帮忙计算是否有机会离开这个迷宫,最少需要多少时间。(每一单位时间只能向四邻方向走一步)

Input
第一行为 T,表示输入数据组数。

下面 T 组数据,对于每组数据:

第一行是两个数字 n, m(2 < n * m <= 64),表示迷宫的长与宽。

接下来 n 行,每行 m 个字符,‘.’表示空地可以通过,‘x’表示陷阱,‘*’表示机关,‘S’代表起点,‘E’代表出口,‘K’表示钥匙(保证存在且只有一个)。

Output
对第 i 组数据,输出

Case #i:

然后输出一行,仅包含一个整数,表示最少多少步能够拿到钥匙并走出迷魂阵,如果不能则打出-1。

Sample Input
5
5 7
...*x..
...x...
xEx....
x...K.
.x
...S
5 7
K..*x..
...x...
xEx....
x.....
.x
...S
5 7
..K*x..
..*x*..
xEx....
x.....
.x
...S
5 7
..K*x..
.*xx*..
E....
xx.....
.x*...S
4 4
S*..
**..
...E
...K

Sample Output
Case #1:
11
Case #2:
13
Case #3:
13
Case #4:
11
Case #5:
-1

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 c程序不知道为什么得不到结果
    • ¥40 复杂的限制性的商函数处理
    • ¥15 程序不包含适用于入口点的静态Main方法
    • ¥15 素材场景中光线烘焙后灯光失效
    • ¥15 请教一下各位,为什么我这个没有实现模拟点击
    • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
    • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置