QOJ.ac

QOJ

Limite de temps : 5 s Limite de mémoire : 512 MB Points totaux : 110

#15378. 皇后

Statistiques

索菲亚皇后被困在一个神秘的 $n$ 行 $m$ 列的棋盘上。棋盘上包含她的起点方格(标记为 S)和终点方格(标记为 E)。不幸的是,通往终点的道路并不容易——一些方格被阻挡了(标记为 #),而其他方格是空闲的(标记为 .)。

但棋盘上还隐藏着神奇的传送门!某些 $1$ 到 $9$ 之间的数字在棋盘上恰好出现两次。如果皇后落在写有数字的方格上,她可以传送到棋盘上具有相同数字的另一个方格,而无需为通过传送门而消耗额外的移动步数。皇后在穿过传送门后,如果不额外花费 $1$ 步移动,就不能继续沿相同方向移动。

皇后的移动方式与国际象棋中的皇后类似——在一步移动中,她可以移动到与她处于同一对角线、同一行或同一列的任何方格,但前提是她与该方格之间(包括该次移动的起点和终点)没有被阻挡的方格。

求出并输出皇后从起点方格到达终点方格所需的最少移动步数,如果无法到达,则输出 $-1$。

输入格式

第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 1000$),分别表示棋盘的行数和列数。

接下来的 $n$ 行,每行包含 $m$ 个字符 $c_{ij}$,表示棋盘的描述。棋盘上的每个字符将是 SE、$1$ 到 $9$ 之间的数字、.# 之一。

输出格式

在第一行也是唯一一行中,输出一个整数,表示皇后到达终点方格所需的最少移动步数。

子任务

子任务 分值 约束条件
1 24 $n, m \le 5$
2 32 棋盘上不会有任何传送门。
3 18 $n, m \le 500$
4 36 无附加限制。

样例

输入样例 1

4 4
S..1
####
1.#E
....

输出样例 1

4

输入样例 2

3 3
S..
.#.
..E

输出样例 2

2

输入样例 3

5 4
S.21
####
2##1
###.
E..#

输出样例 3

4

说明

索菲亚皇后在第一步移动中将移动到第 1 行的数字 1(注意 S 和 1 之间没有被阻挡的方格,因此这一步移动确实是可行的)。然后她将传送到矩阵中的第二个数字 1,并再进行 3 步移动到达终点方格。通过这些移动,她确实完成了从起点到终点方格所需的最少移动步数。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.