初始化:一堆果子不需要合并,所以dp[i][i]=0

既然之前说过我们需要枚举k来划分i和j,那么如果通过枚举i和j进行状态转移,很显然某些k值时并不能保证已经确定过所需状态。

如,i=1 to 10,j=1 to 10,k=1 to 9.当i=1,j=5,k=3时,显然状态f[k+1][j]没有结果

解决方法:先枚举小区间

for(int len=2;len<=n;i++){
    for(int i=1;i+len-1<=n;i++){

int j=i+len-1;

for(int k=i;k<j;k++){

dp[i][j]=dp[i][k]+dp[k+1][j]+sum[i]-sum[j-1];

}

保证区间长度len=j-i+1先从2一直枚举到n

代码:

#include<iostream>
#include<string.h>
using namespace std;
int dp[10][10];
int sum[10];
int main()
{memset(dp,0x3f,100);int a[10];int n;cin>>n;sum[0]=0; for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];dp[i][i]=0;}for(int len=2;len<=n;len++){for(int i=1;i+len-1<=n;i++){int j=i+len-1;for(int k=i;k<j;k++){dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+sum[j]-sum[i-1]);}}}cout<<dp[1][n];
}

【动态规划笔记】区间dp:合并果子相关推荐

  1. 9.动态规划:区间DP问题(合并石头问题)【灵神基础精讲】

    0x3f:https://www.bilibili.com/video/BV1Gs4y1E7EU/ chenf99:由易到难,一步步说明思路和细节:https://leetcode.cn/proble ...

  2. 【动态规划】区间dp: P1063能量项链

    本题和合并石子果子一样,都是枚举最后一次合并的点 [动态规划笔记]区间dp:合并果子_m0_52043808的博客-CSDN博客 区别: 1.需要断环为链 2.每一堆石子变为两个值,这里用结构体实现 ...

  3. 【动态规划】区间DP - 最优矩阵链乘(另附POJ1651Multiplication Puzzle)

    最优矩阵链乘(动态规划) 一个n∗mn*mn∗m的矩阵由 nnn 行 mmm 列共 n∗mn*mn∗m 排列而成.两个矩阵A和B可以相乘当且仅当A的列数等于B的行数.一个nm的矩阵乘mp的矩阵,运算量 ...

  4. 区间dp——合并金币

    链接:https://www.nowcoder.com/questionTerminal/6d3ccbc5b6ad4f12b8fe4c97eaf969e0 来源:牛客网 有 N 堆金币排成一排,第 i ...

  5. 【动态规划】区间dp: P3205 合唱队

    代码: 注意 1.填表时从小区间到大区间: 2.每次加后都要取模 #include<iostream> using namespace std; int n; int a[1001]; i ...

  6. 【动态规划】区间dp:P1005矩阵取数

    代码需要高精度,我不会

  7. 暑假集训总结——区间DP,堆的概念及应用,STL(vector、set、pair、map、priority_queue),hash表,树状数组,图论

    序言: 经过长达十几天的集训,确实学了不少知识点.我想如果再不总结的话,6天之后又要忘完了. 所以发一篇具有总结回忆性的博客,供大家回忆. 目录会本人自己排列的时间的先后顺序来排列,可直接食用. 目录 ...

  8. 【动态规划笔记】区间dp:括号匹配(删除字符和括号匹配)

    代码: //区间dp:括号匹配 #include<iostream> #include<string> #include<string.h> using names ...

  9. SDNU 1171.合并果子(区间dp)

    Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆.  每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果 ...

  10. 【动态规划dp】区间DP模板 Acwing 282. 石子合并 | P3205 [HNOI2010]合唱队

    区间DP 模板 282. 石子合并 #include<iostream> #include<cmath> #include<algorithm> #include& ...

最新文章

  1. vsftp pam mysql_VSFTP+MySQL+PAM
  2. 网络-开发-CIO全面覆盖——51CTO.com今日变脸
  3. python百度地图api经纬度_从百度地图API接口批量获取地点的经纬度
  4. redux provider源码解析
  5. [基础]Javascript中的继承示例代码
  6. 数据库抽象类PDOStatement对象使用
  7. ASM 判定一个类,实现了指定接口
  8. 四川大学计算机专业贵州分数线,四川大学2016年在贵州省高考各专业录取分数线...
  9. Win11系统如何设置黑暗模式
  10. SpringMvc2 使用注解形式发布请求地址
  11. oracle创建目录并赋权,Oracle 添加用户并赋权,修改密码,解锁,删除用户的方法...
  12. php提交失败阻止提交数据,php – 在刷新浏览器时阻止重新提交提交
  13. C# WPF 利用NPOI读写Excel文件
  14. 卷积神经网络---文本分类原理及代码
  15. RTI_DDS自定义插件开发 1
  16. 不用百度网盘客户端直接下载大文件
  17. 质控三张图 gaochao ards 多个表型写成循环
  18. 常见的前端考试面试题目【vue,react,css,six】
  19. Linux:《gzip》《bzip2》压缩解压
  20. 8.Spring学习笔记_使用外部属性文件(by尚硅谷_佟刚)

热门文章

  1. session_cache_limiter(private,must-revalidate)是什么意思
  2. [转载]配置路由让MSN可传文件(2003-9-17)
  3. Java无线数据增值业务概述
  4. 2019 ICPC中国邀请赛(南昌)暨国际丝绸之路程序设计竞赛-网络赛题解
  5. CCF201409-2 画图(100分)
  6. I00003 贝尔三角形
  7. 【数值分析】—— 对数函数、指数函数(数值稳定性)
  8. 说不尽的 π —— π 的近似计算
  9. 实用的 Python —— os.system() 在 python 语句中执行 dos 命令
  10. 机器学习基础(二十四)—— Random Forest