1D1D动态规划
指状态数为O(n)O(n)O(n),每个状态的决策数为O(n)O(n)O(n),直接求解的复杂度为O(n2)O(n^2)O(n2)的动态规划方程dp[i]=min/max{dp[j]+S[i,j]}dp[i] = min/max \{dp[j] + S[i, j]\}dp[i]=min/max{dp[j]+S[i,j]}。
斜率优化
斜率优化是1D1D的一种常见优化方式,一般的套路是先写出dpdpdp方程,然后对于考虑iii之前的某个决策jjj和kkk,假设kkk决策优于jjj决策时,能对应得到一个不等式,满足这个不等式就表示kkk决策是优于jjj决策的,并且此时惊奇的发现可以把决策看做平面上的点,不等式也就转化成了斜率的比较。
此时iii之前的最优决策点一定是在上/下凸壳上。
具体实例
对于斜率式,设k>jk > jk>j且kkk和jjj都是i的前置状态, 满足yk−yjxk−xj<fi\frac{y_k-y_j}{x_k-x_j}<f_ixk−xjyk−yj<fi,则说明kkk决策优于jjj决策。
把决策点看做(xi,yi)(xi, yi)(xi,yi)的平面点,那么最优答案一定是在下凸壳上。
- 当x和fx和fx和f单调时,我们可以动态的用单调队列去维护这个下凸壳,每次取队首作为答案,如果x递增,就从队首构造凸包,否则可以从队尾构造凸包。
- 当xxx单调,而fff不单调,我们可以在决策点的凸壳上二分。
- 否则,我们可以cdq分治强行让xxx和fff都单调,分治的时候左半部分围单调队列围凸壳,右半部分询问答案。
对于树上的问题,可以点分治处理,每次用重心到根的部分去更新重心的子树, 见NOI购票。
四边形不等式优化
对于状态转移方程:
dp[i,j]=min(dp[i][k−1]+dp[k][j])+w[i,j];(i<=k<=j),mindp[i,j] = min(dp[i][k-1] + dp[k][j]) + w[i,j];(i<=k<=j), mindp[i,j]=min(dp[i][k−1]+dp[k][j])+w[i,j];(i<=k<=j),min才满足要求。
四边形不等式决策单调性
当函数w[i,j]w[i,j]w[i,j]满足w[a,c]+w[b,d]≤w[b,c]+w[a,d]w[a,c] + w[b,d] \leq w[b,c] + w[a,d]w[a,c]+w[b,d]≤w[b,c]+w[a,d] 且a<b<c<da < b < c < da<b<c<d 时,我们称w[i,j]w[i,j]w[i,j]满足四边形不等式单调
当函数w[i,j]w[i,j]w[i,j]满足w[i,j]≤w[i′,j′],i′≤i<j≤j′w[i,j] \leq w[i',j'], i' \leq i < j \leq j'w[i,j]≤w[i′,j′],i′≤i<j≤j′ 时,称www关于关于区间包含关系单调。
于是有以下三个定理
定理一:如果w同时满足四边形不等式和决策单调性 ,则dp也满足四边形不等式
定理二:当定理一的条件满足时,让dp[i,j]dp[i,j]dp[i,j]取最小值的kkk为K[i,j]K[i,j]K[i,j],则K[i,j−1]≤K[i,j]≤K[i+1,j]K[i,j-1]\leq K[i,j] \leq K[i+1,j]K[i,j−1]≤K[i,j]≤K[i+1,j]
定理三:www为凸当且仅当w[i,j]+w[i+1,j+1]≤w[i+1,j]+w[i,j+1]w[i,j]+w[i+1,j+1]\leq w[i+1,j]+w[i,j+1]w[i,j]+w[i+1,j+1]≤w[i+1,j]+w[i,j+1]
由定理三知, 判断www是否为凸即判断 w[i,j+1]−w[i,j]w[i,j+1]-w[i,j]w[i,j+1]−w[i,j] 的值随着i的增加是否递减
于是求KKK值的时候K[i,j]K[i,j]K[i,j]只和K[i+1,j]K[i+1,j]K[i+1,j] 和 K[i,j−1]K[i,j-1]K[i,j−1]有关。
对于这方面的资料国内相对比较少,大多数的人只知道凸四边形不等式优化,凹四边形不等式优化更加麻烦一些…有兴趣的同学可以google一下台湾的相关资料。
Problem List
贞鱼
玩具装箱toy
货币兑换cash
柠檬
诗人小G
balls
Lightning Conductor
序列分割

本文总结了决策单调性在动态规划中的应用,包括斜率优化和四边形不等式优化。斜率优化利用上/下凸壳概念简化1D1D动态规划问题,尤其在x和f单调时,可以通过单调队列或二分处理。四边形不等式决策单调性用于判断dp矩阵的性质,当w[i,j]满足特定条件时,dp[i,j]的最优解K[i,j]只与相邻的K值有关。文章列举了多个实际问题如玩具装箱、货币兑换等,展示这些优化技术的应用。"
110937391,10294191,SQL数据库随机抽取50条数据详解,"['SQL', '数据抽样', '数据库管理']
1630

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



