动态规划——区间DP

概述

区间DP:指在一段区间上进行的一系列动态规划
对于区间DP这一类问题,我们需要计算区间 [ 1 , n ] [1,n] [1,n]的答案,通常用一个二维数组 d p dp dp表示,其中 d p [ x ] [ y ] dp[x][y] dp[x][y]表示区间 [ x , y ] [x,y] [x,y]
有些题目, d p [ l ] [ r ] dp[l][r] dp[l][r] d p [ l ] [ r − 1 ] dp[l][r-1] dp[l][r1] d p [ l + 1 ] [ r ] dp[l+1][r] dp[l+1][r]退到;也有题目,我们需要枚举 [ l , r ] [l,r] [l,r]内的中间点,由两个子问题合并得到,也就是说 d p [ l ] [ r ] dp[l][r] dp[l][r] d p [ ; ] [ l ] dp[;][l] dp[;][l] d p [ k + 1 ] [ r ] dp[k+1][r] dp[k+1][r]推得,其中 l ≤ k < r l\leq k<r lk<r
对于长度为n的区间DP,我们可以先计算 [ 1 , 1 ] , [ 2 , 2 ] . . . [ n , n ] [1,1],[2,2]...[n,n] [1,1],[2,2]...[n,n]的答案,再计算 [ 1 , 2 ] , [ 2 , 3 ] , . . . [ n − 1 , n ] [1,2],[2,3],...[n-1,n] [1,2],[2,3],...[n1,n],以此类推,直到得到原问题的答案

例题:合并石子

题目

当前有 N N N 堆石子,他们并列在一排上,每堆石子都有一定的数量。我们需要把这些石子合并成为一堆,每次合并都只能把 相邻 的两堆合并到一起,每一次合并的代价都是这两堆石子的数量之和,经过 N − 1 N-1 N1 次合并后成为一堆。求把这些石子合并成一堆所需的最小代价。

解析

根据动态

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值