深搜:
顾名思义,要一直往深搜,知道得到解或无解再返回上一层。
例题:
迷宫问题:
题:给一个迷宫,有一些障碍物,从左上角开始,只能上下左右走,问是否 能到达右下角(即终点)。
解析:深搜状态为当你所在位置的坐标,每一次都往上下左右四个方向扩展,只要任意一条路径达到终点,就输出“YES”。
代码什么的,我心情好再写吧。
迭代加深搜索:
这一方法适用于那些所求答案的层数很浅,但深搜会搜很深,这就导致了会做很多不必要的运算。而用广搜有不易储存状态,这时候就可以有这一方法。
在搜索时需要限制深度,一旦超过限制深度,即使能继续搜下去也不再继续。
将深度递增。
例题:
四子连棋:
解析:深度即为步数,限制步数,当在某一步数下满足条件,则这一步数即为所求。每次枚举可以移动的棋子,但要记得回溯。