#P913. 位置互换_网络同步赛

    ID: 7492 远端评测题 1000ms 256MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>小学组第五届上海市青少年算法竞赛网络同步赛

位置互换_网络同步赛

题目描述

迷宫游戏是在一张 n×mn \times m的网格图中进行的,其中 a(i,j)a_{(i,j)} 表示第 ii 行、第 jj 列网格的状态,每个网格有以下 44 种情况:

  • a(i,j)a_{(i,j)}. ,则表示该位置为可以走的空地
  • a(i,j)a_{(i,j)}# ,则表示该位置为不可走的墙壁
  • a(i,j)a_{(i,j)}1 ,则表示该位置为小爱初始的位置
  • a(i,j)a_{(i,j)}2 ,则表示该位置为小艾初始的位置

每一轮游戏开始时,可以自由决定是小爱先移动还是小艾先移动,他们可以移动至相邻的上下左右四个空格或原地不动,但又不可以移动至对方所在的网格中。

请问,游戏最少进行多少轮,才能使小爱和小艾互换位置?

输入格式

输入第一行,两个正整数分别表示 n,mn,m 接下来的第 22 行至第 n+1n+1 行,每行 mm 个字符,其中第 i+1i+1 行、第 jj 列的字符表示初始时网格 a(i,j)a_{(i,j)} 的状态。

输出格式

输出共一行,一个整数表示两人互换位置最少需要的轮数,若无法完成,则输出 No Solution

3 3
1..
...
..2
4

样例解释 1

1.. .1. ..1 ... 2.. ... --> ... --> ... --> 2.1 --> ... ..2 .2. 2.. ... ..1

3 3
1..
###
..2
No Solution

样例解释 2

被第二行的墙挡住了

2 3
1.2
#.#
4

样例解释 3

1.2 .12 .2. 21. 2.1 #.# --> #.# --> #1# --> #.# --> #.#

3 3
1.#
#.#
#.2
No Solution

数据范围

  • 对于 50%50\%的数据,1n,m51 \leq n,m \leq 5
  • 对于 100%100\%的数据,1n,m301 \leq n,m \leq 30