单调队列优化:
dp[i]=dp[j]+f[i] i-j有范围
队列一维维护i 的位置(i-j有范围) 另一维维护dp【i】(最值)
注意有范围啊 i-j 有范围
斜率优化:
dp[i]=dp[j]+f[i]*f[j] 说白了 k 可以更新 i 但不一定能更新 j 因为与i j 本身有关
遇到O(N)的DP 即n=1000000啥的
一般就是这俩种DP
判断看单调队列优化 i-j 有范围
斜率优化 dp方程和自己有关(二次系数有i 和 j)
本文介绍两种动态规划优化方法:单调队列优化与斜率优化。单调队列优化适用于i-j有固定范围的情况,通过维护队列来减少计算复杂度;斜率优化则用于dp方程依赖于i和j的情况,通过分析斜率变化实现优化。
单调队列优化:
dp[i]=dp[j]+f[i] i-j有范围
队列一维维护i 的位置(i-j有范围) 另一维维护dp【i】(最值)
注意有范围啊 i-j 有范围
斜率优化:
dp[i]=dp[j]+f[i]*f[j] 说白了 k 可以更新 i 但不一定能更新 j 因为与i j 本身有关
遇到O(N)的DP 即n=1000000啥的
一般就是这俩种DP
判断看单调队列优化 i-j 有范围
斜率优化 dp方程和自己有关(二次系数有i 和 j)
2242
573

被折叠的 条评论
为什么被折叠?