题目传送门
思路
这就是一道 I D A ∗ IDA^* IDA∗的题。
我们的预估函数就是:当前状态还有多少个位置与答案不对应。
若当前步数+估价函数值>枚举的最大步数则直接返回。
我们这儿还有一个小小的优化:不走重复的路(废话)。
代码
感觉似乎并没有提高+/省选-的难度。
#include <bits/stdc++.h>
using namespace std;
int ans[4][4]={
{
0,0,0,0},{
0,1,2,3},{
0,8,0,4},{
0,7,6,5}};
int book,a[5][5],x,y;
char c[9];
bool flag;
int ex[