U60517.mxcm岩浆跑酷
NOI/NOI+/CTSC
通过率: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
注:这是一个连通块:
^^##
##^^
##^^