#Z01530. 15数码问题
15数码问题
题目描述
在一个 4x4 的网格中,1∼15 这 15 个数字和一个 x 恰好不重不漏地分布在这 4×4 的网格中,10~15分别用A,B,C,D,E,F表示
例如:
1 2 3 4 5 6 7 8 9 A B x D E F C 在游戏过程中,可以把 x 与其相邻的上、下、左、右四个方向之一的格子进行交换(如果存在),交换顺序的方向按照上、下、左、右进行交换。
我们的目的是通过交换,使得网格变为如下排列(称为正确排列): 1 2 3 4 1 2 3 4 5 6 7 8 5 6 7 8 9 A B x 9 A B C D E F C D E F x 例如,示例中图形就可以通过 x 与C(下方向)交换得到正确排列。
把 x 与上下左右方向数字交换的行动记录为 u、d、l、r。
现在,给你一个初始网格,请你通过最少的移动次数,在18步之内(包括18步),得到正确排列。
输入格式
输入有多组,将 4×4 的初始网格描绘出来。
例如,如果初始网格如下所示:
1 2 3 4 5 6 7 8 9 A B x D E F C
则输入为:1 2 3 4 5 6 7 8 9 A B x D E F C
输出格式
输出占一行,包含一个字符串,表示得到正确排列的完整行动记录。
如果步数超过18步,则输出 unsolvable。
1 2 3 4
5 6 7 8
9 A B x
D E F C
d
提示
方向必须严格按照上下左右走
豫公网安备41072702000346号