IDA*
1,由bfs和dfs的优缺点引起,如果碰上了既不知道深度,状态又不好表示的题目该怎么办。
2,所以引出了我们的迭代加深。
3,模板
int idt=0;//1,规定搜索深度 bool dfs(int x) { if(x>idt) return false;//2,若搜索深度超过规定 //就停止进一步搜索 if(chck()) return true; ... return false; } main()//3,每次搜索失败后就让搜索深度加深一层 // { for(;;) { ++idt; } ///4,第一次找到答案是其深度就是最优值 }
4,对哦,每次深度加1是不是,每次都要把之前遍历过的遍历一次。
但是人家讲了,无所谓的,为什么呢》
因为这个搜索一般是指数爆炸层次的,往往你就下去一层的要搜索的东西要超过你之前搜索的n-1的搜索的结果。
s