搜索技巧之-剪枝题单
剪枝是去除搜索树当中不必要的搜索路径,从而优化算法,降低时间开销。
常见的剪枝包括:
1可行性剪枝 2排除等效剪枝 3最优性剪枝 4顺序剪枝 5记忆化剪枝
下面将一一举例介绍其原理:
1可行性剪枝
在寻找所有的解决方案时,若某种方案明显不可行/无法找到答案,则停止继续搜索。
2排除等效剪枝
当该方案和之前搜过的方案对结果具有相同效果时,可以只使用一个继续向下搜索。
3最优性剪枝
当前的方案与已有方案相比,结果明显不是最优的时候,例如在某一层取max/min后,发现不能得到更优解时,停止继续搜索。
4顺序剪枝
似乎不太常见,在搜索之前进行排序(预处理),优先搜索排序靠前的会减少不必要的搜索。
5记忆化剪枝
当每个状态的结果是唯一确定且有可能会多次重复搜索时,记录每个状态的搜索结果,并在再次调用时直接返回记录值。
讲课题单:
剪枝:
P2919 [USACO08NOV] Guarding the Farm S
特殊剪枝:记忆化
P5635 【CSGRound1】天下第一 short防止MLE
P2690 [USACO04NOV] Apple Catching G
P3183 [HAOI2016] 食物链 //需要一点 图的知识,入度出度和链表