#P15487. [IOI 1998] Camelot
[IOI 1998] Camelot
说明
数个世纪前,亚瑟王与圆桌骑士每逢新年都会相聚庆祝他们的情谊。为纪念这些事件,现设计一款单人棋盘游戏,其中一枚国王棋子和若干骑士棋子被随机置于不同的方格。
棋盘是一个 的方格阵列。

如图 2 所示,国王可移动至任意相邻方格(例如从 到 ),前提是不超出棋盘边界。

如图 3 所示,骑士可移动至符合规则的位置(比如从 跳到 ),只要不超出棋盘边界即可。

在游戏过程中,玩家可在同一方格放置多枚棋子。棋盘方格假定足够大,确保棋子自由移动时互不阻碍。
玩家的目标是通过移动棋子,在尽可能少的步数内将所有棋子聚集到同一方格。为此,他必须按照上述规则移动棋子。此外,当国王与一个或多个骑士处于同一方格时,玩家可选择从此将国王与其中一名骑士共同移动(此后视为一个骑士棋子),直至最终聚集点。骑士与国王共同移动的行为计为一步。
任务
编写一个程序,计算玩家完成聚集所需的最少移动步数。
输入格式
给出初始棋盘布局,以字符串形式编码。该字符串包含最多 个不同的棋盘位置:第一个位置表示国王所在位置,其余位置表示骑士的位置。每个位置由字母-数字对表示:字母表示棋盘横坐标,数字表示棋盘纵坐标。
输出格式
必须包含一行,其中有一个整数,表示玩家完成聚集所需执行的最小移动步数。
D4A3A8H1H8
10
提示
骑士数量范围介于 与 之间。
京公网安备 11011102002149号