U60517.mxcm岩浆跑酷

NOI/NOI+/CTSC

NOI Online

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

可怜的mxcm因为太久没上线,猎人们在她离开服务器的地方搭建了一个监狱,使她被关在其中QAQ。

mxcm现在面对的是一个n*m的岩浆跑酷,其中字符^表示岩浆,不能踩踏,字符#是实体方块,可以踩踏,字符S是开始的位置,字符E是结束的位置(S和E也相当于实体方块)。请注意,这些实体方块可能并不相连,需要跳跃才能到达,连通的实体方块被称为连通块,两个对角方块也属于同一连通块,同一连通块只能访问一次,连通块内部移动不计入跳跃次数,视为走路。mxcm最远可跳x格,mxcm有a瓶跳跃提升药水,可使单次跳跃距离是原来的两倍,一次只能喝一瓶。
不能跳0格!!!

求mxcm的最少跳跃次数,如果从S无法到达终点E,则输出-1

跳跃距离计算图例说明:(字符@在图中表示mxcm的位置,0格表示行走,行走不计入跳跃次数,连通块离开后不能再次到达,只能访问一次)

5 5 5 5 5 5 5 5 5 5 5
5 4 4 4 4 4 4 4 4 4 5
5 4 3 3 3 3 3 3 3 4 5
5 4 3 2 2 2 2 2 3 4 5
5 4 3 2 0 0 0 2 3 4 5
5 4 3 2 0 @ 0 2 3 4 5
5 4 3 2 0 0 0 2 3 4 5
5 4 3 2 2 2 2 2 3 4 5
5 4 3 3 3 3 3 3 3 4 5
5 4 4 4 4 4 4 4 4 4 5
5 5 5 5 5 5 5 5 5 5 5

输入格式

第一行输入两个整数n和m
接下来m行每行输入一个长度为n的字符串,是跑酷地图
最后一行输入两个整数x和a,是mxcm的最远跳跃距离和拥有药水数量

输出格式

输出一个整数,表示mxcm的最少跳跃次数,如果无法到达,返回-1

输入输出样例

  • 输入#1

    3 5
    ^E^
    ^#^
    ^#^
    ^#^
    ^S^
    2 0
    

    输出#1

    0
  • 输入#2

    4 11
    ^E^^
    ^^^^
    ^^^^
    ^^^^
    ^^^^
    ^^^^
    ^^#^
    ^^^^
    ^^^^
    ^S^^
    ^^^^
    3 1

    输出#2

    2

说明/提示

对于第一个样例,无需跳跃走过去就行
对于第二个样例,先向右上跳一步,再喝下药水,并向左上进行
跳跃(跳了五格)即可到达。
保证2<=n,m<=60
2<=x<=8
0<=a<=60
注:这是一个连通块:
^^##
##^^
##^^

首页