我知道,我现在写这篇文章还很不成熟,因为我很多东西弄得还很不怎么样,但是我还是想写一下。
国家集训队论文中有大量关于DP优化的论文:毛子青的《动态规划算法的优化技巧》、朱晨光的《从《鹰蛋》一题浅析对动态规划算法的优化》、杨哲的《凸完全单调性的一个加强与应用》等。特别是毛子青大牛的论文,值得一看!还要说明的是,周源的《浅谈数形结合思想在信息学竞赛中的应用》一文,谈到了数形结合、单调队列、和下凸折线上凸折线等,分析了斜率的优化策略。赵爽的《动态规划加速原理之四边形不等式》给出了四边形不等式的证明。关于斜率优化的证明在网上百度一下应该有很多的。
关于DP的优化,真是五花八门,种类繁多!具体的有:
1)线段树(优化转移决策数)
2)状态压缩(优化空间 和时间)
3)斜率优化 (优化转移决策数)
4)四边形优化 (优化转移决策数)
5)滚动数组 (优化空间)
6)矩阵优化 ()
例题:
线段树:
hdu 3016 ManDown
pku 2374 Fence Obstacle Course
poj 3378 Crazy Thairs
这两个都是简单的题目,其他的我没有记录,以后遇到在添加吧
状态压缩:骨牌覆盖 炮兵阵地 这两个很经典!
再者状态压缩还有一类很难得!虽然放在这儿有点牵强,叫做基于连通性状态压缩的动态规划,俗名叫插头DP。
斜率优化 :
首先是单调队列:
poj 2823
hdu 3530 Subsequence
hdu 3415 网上百度一下即可
然后就是斜率优化的DP
hdu 3507 Print Article
poj 3709 K-Anonymous Sequence
注意:延迟加入这个东东
四边形优化:
hdu 3516 Tree Construction
hdu 1729 An old Stone Game(经典)
记得还有一个,邮局问题,邮局的那个很经典!!!
关于凸完全单调性的一个加强与应用