深搜专题小结

前言:花了三天,终于刷完了深搜专题的所有题目 纯看题解,copy代码
剪枝的方式有很多
从大的方面讲,会有两大类:
1.可行性剪枝
2.最优性剪枝

关于可行性剪枝的几种实现方法:
1.上下界剪枝
1)前缀和预处理
2)dp预处理
3)直接估计
2.奇偶剪枝
总而言之就是根据枚举方案是否与目标有冲突,或无法实现
有些可以在枚举前就预测出来,如能否整除什么的
有些需要在过程中实现,如加上预计最大情况仍小于目标

最优性剪枝中最基本的套路就是:答案取最小值时,当前值已大于已得出的答案,直接返回
在这个基础上可以估计以哪个顺序更容易得到最优解,这样可以使剪枝发挥最大作用
有时在枚举前就可以预估出答案大约在那个区间内

还有些优化也是十分常用的:
1.避免重复枚举,这一类最基本的就是mark掉,但每次还是会在循环中访问到,可以在链表中直接删除
2.优化最后一层循环,有时完全可以用贪心或者其他方法优化掉这一层
3.有时套用算法可以检测出很多不可能的情况

在做这种深搜题时,枚举的量也是一个关键因素

小结:剪枝这种东西是必要的,尤其是上下界剪枝和最优性剪枝,仔细思考把自己能想到的剪枝都丢上去,有时还有有一些常数优化,大概就讲这么多吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值