P12684 【MX-J15-T4】叉叉学习魔法
题目背景
原题链接:。
---
小 X 和小 W 走散了。
题目描述
在一个 $n \times m$ 的地图上,有的位置是空地 `.`,有的位置是墙 `#`。小 X 和小 W 分别站在一个空地上,他们走散了,小 X 想去找到小 W。在整个过程中,小 X 都不能走出地图。
定义 $(i,j)$ 表示第 $i$ 行第 $j$ 列。小 X 每次可以从空地 $(i,j)$ 走一步到空地 $(i-1,j)$、$(i+1,j)$、$(i,j-1)$ 或 $(i,j+1)$ 上。
小 X 可以使用若干次魔法。每次使用魔法,小 X 可以从空地 $(i,j)$ 不增加步数地移动到空地 $(i-1,j-1)$、$(i-1,j+1)$、$(i+1,j-1)$ 或 $(i+1,j+1)$ 上。
小 X 想知道,他至少要使用多少次魔法,可以走最少的步数找到小 W。如果小 X 无法找到小 W,请告诉小 X。
输入格式
第一行两个整数 $n,m$。
接下来 $n$ 行,每行 $m$ 个字符,表示地图。其中字符 `X` 和 `W` 分别表示小 X 和小 W 初始站在的空地。
输出格式
一行两个整数,分别表示小 X 走的最少的步数和至少使用魔法的次数。如果小 X 无法找到小 W,输出 `-1 -1`。
说明/提示
**【样例解释 #1】**
从 $X(1,1)$ 使用一次魔法移动到 $(2,2)$,再使用一次魔法移动到 $W(3,3)$。
**【数据范围】**
对于 $100\%$ 的数据,$2 \le n,m \le 5000$,地图中仅出现 `.#XW` 四种字符,其中 `X` 和 `W` 有且仅有一个。
| 测试点编号 | $n,m \le$ | 特殊性质 |
| :---------: | :-------: | :------: |
| $1$ | $2$ | |
| $2\sim 7$ | $10$ | |
| $8 \sim 11$ | $1000$ | |
| $12\sim 15$ | $5000$ | 没有 `#` |
| $16\sim 20$ | $5000$ | |