1019: 勇者
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:39
解决:4
题目描述
一名勇者希望前去斩杀恶龙,路上可能会遇到恶龙麾下的敌怪。
勇者可以向上、下、左、右四个方向的道路移动,每移动一格需要1个单位时间,杀死一个敌怪需要花费额外的1个单位时间(勇者在玄学力量的加持下,有能力斩杀所有的敌怪,同时用时必定为1个单位时间)。
与玄学的力量相应的代价是,勇者的生命需要时刻与天空维持联系,即勇者不能从有树的地方走过
给出山间地图以及勇者、恶龙和敌怪的位置,请你计算勇者从起点出发见到恶龙的最少用时(注意是见到恶龙,即到达恶龙的位置,而不是到达后花费$1$个单位时间斩杀恶龙)。
勇者可以向上、下、左、右四个方向的道路移动,每移动一格需要1个单位时间,杀死一个敌怪需要花费额外的1个单位时间(勇者在玄学力量的加持下,有能力斩杀所有的敌怪,同时用时必定为1个单位时间)。
与玄学的力量相应的代价是,勇者的生命需要时刻与天空维持联系,即勇者不能从有树的地方走过
给出山间地图以及勇者、恶龙和敌怪的位置,请你计算勇者从起点出发见到恶龙的最少用时(注意是见到恶龙,即到达恶龙的位置,而不是到达后花费$1$个单位时间斩杀恶龙)。
输入
第一行两个整数,分别代表$n$和$m$。
随后$n$行,每行有$m$个字符。
"."代表道路,"&"代表恶龙,"@"代表骑士,"x"代表敌怪, "#"代表树。
随后$n$行,每行有$m$个字符。
"."代表道路,"&"代表恶龙,"@"代表骑士,"x"代表敌怪, "#"代表树。
输出
一个整数,表示勇者从起点出发见到恶龙的最少用时。
如果勇者见不到恶龙则输出$-1$
如果勇者见不到恶龙则输出$-1$
样例输入 复制
#1
7 8
#.#####.
#...@.
#..#x...
..#..#.#
#...##..
.#......
........
#2
3 5
#....
#.#@.
##.
#3
4 3
&..
##x
.@.
.#.
#4
5 5
.....
.###.
@###.
x#xx.
xxxx&
#5
5 5
xxxx&
x#xx.
@###.
.###.
.....
#6
10 10
#..#...&.#
#.#####.x.
##..#...##
#..x#.....
.#.#x.##.#
....#.##..
...#x.#...
.....#..#.
.#.#.x....
.....@...#
样例输出 复制
#1
13
#2
-1
#3
6
#4
10
#5
10
#6
13
提示
$1 \leq N,M \leq 200$