动态规划 区间dp

概念
区间dp:在区间上进行动态规划,求解一段区间上的最优解。它是通过合并小区间的最优解进而得出整个大区间上最优解的dp算法。

区间dp是线性dp的扩展。

分阶段地划分问题时,它与阶段中元素出现的顺序以及由前一阶段的哪些元素合并而来有很大的关系。

性质

合并 :即将两个或多个部分进行整合,当然也可以反过来;

特征 :能将问题分解为能两两合并的形式;

求解 :对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,最后合并两个部分的最优值得到原问题的最优值。

适用情况
如果在思考做法时,发现每做一次选择都会影响后面、无法直观理解的,一般就是dp了。如果没有找到线性的状态转移方程,那么可以考虑区间dp。

朴素的做法
时间复杂度为O( n3 )

for(int len = 1; len <= n; len++)//枚举(除去了起点的)长度
{
        for(int j = 1; j + len <= n; j++)//枚举起点
        {
            int ends = j + len;
            //dp[][] = dp[][]有时候这里会有值的更新
            for(int i = j; i < ends; i++)//枚举分割点,更新小区间最优解
                dp[j][ends] = min(dp[j][ends], dp[j][i] + dp[i + 1][ends] + something);//有时候合并没有something
        }
    }

环状题目做法
https://oi-wiki.org/dp/interval/

四边形不等式优化
https://oi-wiki.org/dp/opt/quadrangle/

参考来源

博客----区间dp,有讲解,类型全面,有很多例题
https://blog.csdn.net/qq_40772692/article/details/80183248
OI WIKI
https://oi-wiki.org/dp/interval/
OI WIKI 四边形不等式优化
https://oi-wiki.org/dp/opt/quadrangle/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值