* 搜索可能是在 NOIP 中使用范围最广的算法,大部分的题目,在想不到正解的情况下,总能写个搜索(我们称之为的暴力)来得到部分的分数。
* 搜索,严格说不上是一个算法,是一种编程的思路:通过穷举所有的可能性,我们模拟问题的处理步骤,直到找到问题的解。
* 穷举所有的可能性就注定了时间和空间花销肯定会很大,所以一般只有在数据范围较小的时候能使用搜索算法。
* 搜索算法主要分为两类:
1 DFS(深度优先搜索);
2 BFS(宽度优先搜索)。
1、
2、
常见的几类搜索问题:
排列问题
枚举1~n的排列
组合问题
选谁,不选谁
路径问题
下一步,该往哪里走
3、写搜索要关心什么?
--有哪些常用的搜索算法
--问题有解时能否找到解
--找到的解是最佳的吗?
--什么情况下可以找到最佳解?
--求解的效率如何
大略了解这么多就可以了,重要的是代码。
此为个人略解,转载请标明出处:http://www.cnblogs.com/rmy020718/p/8836106.html