可以使用A*算法解决。
启发函数f(n)=g(n)+h(n),h(n)=所有棋子到其目标位置的距离和*K,也就是曼哈顿距离*K。
经过验证,k=1时会超出POJ的时限,k=4时最快,但K=4得到的结果其实不能保证是最短路径,如下面例子:
8 6 7 2 5 4 3 x 1
K=1: ruuldlurddlurrulldrdruldlururdd
K=2: urulldrrdluulddruruldldrruldluurrdd
K=4:ruulddrulldruldrrululddruurddluruldlurrddluurdldruuldrd
可见poj关于该题的判决是有问题的。