集训Day1(搜索)

深搜:

顾名思义,要一直往深搜,知道得到解或无解再返回上一层。

例题:

迷宫问题:

题:给一个迷宫,有一些障碍物,从左上角开始,只能上下左右走,问是否 能到达右下角(即终点)。
解析:深搜状态为当你所在位置的坐标,每一次都往上下左右四个方向扩展,只要任意一条路径达到终点,就输出“YES”。
代码什么的,我心情好再写吧。

迭代加深搜索:

这一方法适用于那些所求答案的层数很浅,但深搜会搜很深,这就导致了会做很多不必要的运算。而用广搜有不易储存状态,这时候就可以有这一方法。
在搜索时需要限制深度,一旦超过限制深度,即使能继续搜下去也不再继续。
将深度递增。

例题:

四子连棋:

解析:深度即为步数,限制步数,当在某一步数下满足条件,则这一步数即为所求。每次枚举可以移动的棋子,但要记得回溯。

猜你喜欢

转载自blog.csdn.net/yu25_21_5/article/details/80933004