1.二分优化 (使用二分查找优化查找效率)
典型例题:LIS
dp[i]保存长度为 i 的上升子序列中最小的结尾,可以用二分查找优化到nlogn
2.数学优化 (通过数学结论减少状态数)
例题1:hdu4623 题解
大意是求10个数及其倍数最大不能表示的数
有数论结论证明对于互质的p,q,最大不能表示的数不会超过p*q,所以这个题就成了有上限(256*256)的问题了,在上限内跑背包即可。
3.矩阵优化(通过矩阵快速幂加速状态转移)
......
4.单调队列优化 (在某些满足单调性的题中可以把复杂度直接降一维)
例题1:hdu3401
例题2:poj1821
例题3:poj1742 多重背包,楼教主的
5.斜率优化
......
6.四边形优化
......
时间: 2024-10-17 07:52:33