冠军之路:寻找击败所有精英训练师到达出口的最短路径

xb529402 程序题 共 个子题

当训练师眼神对上的那一刻,就会开始对战。lxz来到了冠军之路的山洞中,山洞的地图是一个N*M的矩形:

  • .代表可以行走的地面
  • #代表无法行走的岩石
  • I代表山洞的入口,即lxz现在所在的位置
  • O表示冠军之路的出口
  • w/a/s/d代表四个朝向的精英训练师:w向上,s向下,a向左,d向右,训练师所在位置不可行走。

lxz可以向上下左右四个方向行走,矩形的四周都是山洞的岩石,无法行走。如果lxz出现在精英训练师正对方向的一条线上,且没有被岩石或其他精英训练师阻挡,那么lxz就会与这个精英训练师进行对战,每位训练师只会与lxz对战一次。

为了通过冠军之路,lxz必须击败所有精英训练师。本题要求找到一条击败所有精英训练师并走到冠军之路出口的最短路径。

时间限制:1000ms
内存限制:65536KB

输入

第一行是两个整数 N, M 表示地图的大小,0 < N, M <= 100。接下来是N行,每行M个字符,代表冠军之路的地图,训练师的个数不超过8。

输出

一个整数,表示击败所有精英训练师并走到冠军之路出口的最短路径的长度。如果无法击败所有精英训练师或者无法到达出口,输出 -1。

样例输入

3 3
Id.
...
Oa#

样例输出

8

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧