#4318. Distance Between Tokens

0
    ID: 4318 传统题 2000ms 1024MiB 尝试: 0 已通过: 0 难度: 1 上传者: 标签>AtCoderabc253BGESP 2级枚举(双层循环)

Distance Between Tokens

Distance Between Tokens

题目描述

有一个由 HH 行水平方向格子和 WW 列垂直方向格子组成的网格,其中有两个不同的格子里各放着一枚棋子。 格子的状态由 HH 个长度为 WW 的字符串 S1,…,SHS_1, \dots, S_H 表示。Si,j=oS_{i, j} = o 表示从上数第 ii 行、从左数第 jj 列的格子里有一枚棋子;Si,j=−S_{i, j} = - 表示该格子没有棋子。这里,Si,jS_{i, j} 表示字符串 SiS_i 的第 jj 个字符。 考虑反复将其中一枚棋子移动到四个相邻格子中的一个。不允许将棋子移动到网格之外。至少需要多少次移动才能使其中一枚棋子到达另一个棋子所在的格子?

输入格式

输入从标准输入按照以下格式给出: HH WW S1S_1 ⋮\vdots SHS_H

输出格式

输出答案。

2 3
--o
o--
3
5 4
-o--
----
----
----
-o--
4

提示

2≤H,W≤1002 \leq H, W \leq 100 HH 和 WW 为整数。 Si (1≤i≤H)S_i \, (1 \leq i \leq H) 是由 oo 和 −- 组成的长度为 WW 的字符串。 存在恰好两个整数对 1≤i≤H,1≤j≤W1 \leq i \leq H, 1 \leq j \leq W 满足 Si,j=S_{i, j} = oo。位于从上数第 11 行第 33 列的棋子可以通过 33 步到达另一枚棋子所在的格子:向下、向左、向左。由于不可能在两步或更少的移动中做到,所以应当输出 33。

标签: AtCoder|abc253B

来源

AtCoder|abc253B