15数码问题

成绩 100 开启时间 2016年05月29日 星期日 15:45
折扣 0.8 折扣时间 2016年05月29日 星期日 15:45
允许迟交 关闭时间 2016年05月29日 星期日 15:45
输入文件 Puzzle15.in 输出文件 Puzzle15.out

【题目描述】15数码问题(Puzzle15.cpp/c/pas)uva 10181

“呵呵,你真以为这世上有无所不能的神?实话告诉你,很久以前,宇宙中的几大黑暗势力就在你们星球上通过创立各种宗派收罗信众,并暗中挑动了不计其数的宗派战争以收割你们人类的生命力(命源)。所谓的创世神传说,也不过是我们在远古时代就布局抛给你们的诱饵而已。当然我们比他们要仁慈,像他们那种通过战争来收割生命力(命源)的低级手段就像杀鸡取卵一样愚蠢,但再愚蠢,也比不过你们彼此残杀数十万年而不醒悟的愚蠢。看到这道15谜问题了吗,当你解开它,你就会知道我们的来历了。”所谓的守护者在吸收了赢来的魔法石上足够的能量后,对修罗王说。 

15数码问题是在一个4×4的方格棋盘上,将数字1,2,3,…,14,15以任意顺序置入棋盘的各个方格中,空出一格,通过有限次移动,把一个给定的初始状态变成目标状态,如图所示。移动规则是:每次只能在空格周围的四个数字中任选一个移入空格。可以证明的是,一共16!的初始状态中,有一半是不可能移成目标状态的。

【输入格式】

第一行为一个整数N,表示有N组数据,随后是N组4×4的棋盘初始状态描述。

【输出格式】

若在50步内不能完成,输出“This puzzle is not solvable.”,否则输出步数如样例所示。其中R,L,U和D分别代表左,右,上和下。

【输入样例】

 2

 2 3 4 0

 1 5 7 8

 9 6 10 12

 13 14 11 15

 13 1 2 4

 5 0 3 7

 9 6 10 12

 15 8 11 14

【输出样例】

LLLDRDRDR

This puzzle is not solvable.