A83485.Bishop 2
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有一个 N×N 的国际象棋棋盘。棋盘上从上往下第 i 行,从左往右第 j 列的格子称为格子 (i,j)。
棋盘的信息以 N 个字符串 Si 给出。
字符串 Si 的第 j 个字符 Si,j 包含以下信息:
- 当 Si,j=. 时,格子 (i,j) 上没有任何棋子。
- 当 Si,j=# 时,格子 (i,j) 上有一个白色兵(pawn)。这个兵不能被移动或移除。
现在在棋盘的格子 (Ax,Ay) 上放置了一个白色主教(bishop)。
请你求出,按照国际象棋的规则(见下方注释),将这个主教从 (Ax,Ay) 移动到 (Bx,By) 所需的最少步数。
如果无法移动到目标位置,则输出 −1。
输入格式
输入以如下格式从标准输入读入:
N Ax Ay Bx By
S1
S2
⋮
SN
输出格式
请输出答案。
说明/提示
注释
放在格子 (i,j) 上的白色主教可以按照以下规则每一步移动:
- 对于每个正整数 d,如果满足以下所有条件,则可以移动到格子 (i+d,j+d):
- 格子 (i+d,j+d) 在棋盘内。
- 对于所有正整数 l≤d,格子 (i+l,j+l) 上没有白色兵。
- 对于每个正整数 d,如果满足以下所有条件,则可以移动到格子 (i+d,j−d):
- 格子 (i+d,j−d) 在棋盘内。
- 对于所有正整数 l≤d,格子 (i+l,j−l) 上没有白色兵。
- 对于每个正整数 d,如果满足以下所有条件,则可以移动到格子 (i−d,j+d):
- 格子 (i−d,j+d) 在棋盘内。
- 对于所有正整数 l≤d,格子 (i−l,j+l) 上没有白色兵。
- 对于每个正整数 d,如果满足以下所有条件,则可以移动到格子 (i−d,j−d):
- 格子 (i−d,j−d) 在棋盘内。
- 对于所有正整数 l≤d,格子 (i−l,j−l) 上没有白色兵。
约束条件
- 2≤N≤1500
- 1≤Ax,Ay≤N
- 1≤Bx,By≤N
- (Ax,Ay)=(Bx,By)
- Si 是由
.和#组成的长度为 N 的字符串 - SAx,Ay=.
- SBx,By=.
样例解释 1
如下图所示,可以通过 3 步将主教从 (1,3) 移动到 (3,5)。无法在 2 步以内完成。
- (1,3)→(2,2)→(4,4)→(3,5)
样例解释 2
无论如何移动主教,都无法将其从 (3,2) 移动到 (4,2)。