UVA - 11212 Editing a Book(IDA* 迭代加深搜索+启发式算法)

思路:刘汝佳紫书上的题,设maxd为深度上限,最大为8.当前深度为d,,用h()计算当前后继不正确的数。 剪枝条件为h()>3*(maxd-d),即h()+3d>3maxd.

c++代码:

#include 
#include 
#include 

using namespace std;

int a[15];

int n;

int maxd;

bool is_sorted() {
	for(int i=1;i3*maxd)return false;
	 int b[15],o[15];
	for(int i=0;ij)b[cnt2++]=a[k];
			 } 
	  	     
	  	    //遍历插入位置 
	  	    int cnt;
			for(int k=0;k

你可能感兴趣的:(dfs,IDA*)