P14469 [COCI 2025/2026 #1] 皇后 / Kraljica

题目背景

本题满分 $110$。

题目描述

有一块 $n$ 行 $m$ 列的国际象棋棋盘。你要操作皇后(queen)从起点移动到终点。棋盘有如下几种类型的格子: - $\texttt{S}$:起点。 - $\texttt{E}$:终点。 - $\texttt{\#}$:障碍。 - $\texttt{.}$:空格子。 - $\texttt{1}\sim \texttt{9}$:传送门(见下)。 棋盘上有若干个传送门:$\texttt{1}\sim \texttt{9}$ 中的若干个数字会在棋盘上出现**两次**。当皇后到达传送门时,**可以**选择移动到棋盘上另一个写着相同数字的传送门处,这个操作不计入步数。传送之后的第一次移动同样计入步数,无论方向如何。 皇后的移动规则和国际象棋类似:在一步中,可以将皇后移动到同一行,同一列或同一对角线上的任意一个**未被障碍物阻挡**的格子(换言之,这一步起点到终点连的线段经过的格子不能有障碍物,包括起终点)。 求出从起点到终点的最小步数,或报告无解。

输入格式

第一行,两个正整数 $n,m(1 \leq n,m\leq 1000)$。 接下来 $n$ 行,第 $i$ 行一个长度为 $m$ 的字符串,字符集为 $\{\texttt{S},\texttt{E},\texttt{\#},\texttt{.},\texttt{1}\sim \texttt{9}\}$,其中第 $i$ 行的第 $j$ 个字符 $c_{i,j}$ 表示第 $i$ 行第 $j$ 列的格子类型。

输出格式

若无解,输出一行一个 $\texttt{-1}$。 否则输出一行一个正整数,表示答案。

说明/提示

### 样例解释 **样例三解释**:走到传送门 $1$ 处,传送;然后用三次操作走到终点。可以证明 $4$ 是最少步数。 ### 子任务 - $\text{Subtask 1 (24 pts)}$:$n,m\le 5$。 - $\text{Subtask 2 (32 pts)}$:无传送门。 - $\text{Subtask 3 (18 pts)}$:$n,m\le 500$。 - $\text{Subtask 4 (36 pts)}$:无额外限制。