【学习笔记】区间dp
区间 dp 主要思想:
想求区间 $i$ ~ $j$ 的最优解,我们可以根据小区间的最优解,来得出大区间的最优解。具体就是枚举每一个中点,然后 $dp_{i,j}=max(dp_{i,j},dp_{i,k}+dp_{k+1,j}+num)$(num,取max和min 要根据题目要求来定)
环形问题解决方法:
开两倍(把数据复制到原来的后面),也就是对 $1$ ~ $2 \times n$ 进行动态规划,最后取 $dp_{1,n}$,$dp_{2,n+1}$ ...... 的最优解。这样做是为了把环变成链。
注意:
- 初始化
- for 循环的正序和倒序。选择正序还是倒序背后的逻辑是“dp时大区间是根据小区间得到解的,这就要保证小区间都算过”。