中级农民
- 积分
- 114
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2019-3-30
- 最后登录
- 1970-1-1
|
本帖最后由 yangff 于 2022-6-24 00:49 编辑
最优化问题做题的话你的选择是很有限的,抛开数学题不谈,剩下的要么就是搜,要么就是dp,要么就是二分、分治,要么就是贪心(还有建图最大流之类的以及一些奇奇怪怪的暂且不谈吧)。
这里面搜的数据范围一般比较明显,除非是花样剪枝地,另外就是基本上就没有太好的结构或者性质
二分的话要能转化成判定性问题,并且判定的复杂的够低,并且可行解是连续的。
分治、dp和贪心在性质上很接近,和分治相比后两者的特征是可以划分出阶段,而分治则需要能够高效地合并解。
有了阶段就再看它递推的过程中是更容易合并状态还是更容易直接选出下一个状态。如果是贪心的话,因为决策的时候是盲目的,所以要么决策之间有很高的独立性,要么就是你稍微算算可以发现一边损失的可以再另一边补回来,所以每次按照单位收益最高选就行,再或者就是证明如果不按照贪心的顺序的解一定不是最优的诸如此类。。(Exchange Argument、拟阵这些的)。和dp的区别就是这里每个阶段不再需要尝试多个状态。反过来说,如果用DP做可能也可以,但是效率可能就有问题,或者压根就没法进行状态编码(比如状态可能是n!的而且没法合并)
当然这里只针对相对比较简单的问题。
|
|