• 深搜剪枝小结


    深度优先搜索,俗称深搜,即DFS,是一个常用并且基础的算法和思想。但是搜索算法的时间复杂度往往很大,是OI不被允许的。所以对于深搜的优化最实用和基础的一个方法就是剪枝

    三原则:1、正确性;2、准确性;3、高效性;

    正确性,顾名思义就是不能把通向正确的路径剪去。

    准确性,则是尽可能多的剪去不会通向正确的路径,也就是判断条件更严格。

    高效性,简单来说就是判断操作更更高效才行。

    这就带来一个矛盾,就是判断条件的严格度和判断操作的效率的平衡。不过一般来讲,我们更注重判断条件的严格度之后再考虑优化判断操作(预处理什么的)。

    剪枝技巧:

    1、优化搜索顺序;

    2、排除等效冗余;(即如果在递归树上有两个节点的状态一模一样,只不过走过的路不一样,那么在有些题目中可以只搜索一条)

    3、可行性剪枝(上下界剪枝);在做可行性剪枝的时候我们设计的剪枝方案要“看的远",及时检查当时状态看是否可以达到递归条件。

    4、最优性剪枝;当前花费加上预期的最小花费已经劣于搜索到的答案,直接返回。

    5、记忆化;

  • 相关阅读:
    CF 142B Tprimes
    CF 231A Team
    poj 2001 Shortest Prefixes ——字典树入门
    hdu 1039 Easier Done Than Said?
    poj 2528 Mayor's posters
    hdu 1061 Rightmost Digit
    poj 2503 Babelfish
    CF271 A. Beautiful Year
    poj 2752
    CF271 B. Prime Matrix
  • 原文地址:https://www.cnblogs.com/uncklesam7/p/9406516.html
Copyright © 2020-2023  润新知