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