Description

有n堆石子排成一行,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和。已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分。

Input

第一行一个整数n(1 <= n <= 200),表示石子堆数; 第二行n个整数a(1 <= a <= 100),表示每堆石子的个数。

Output

一个整数,表示最小总得分。

Sample Input

5
7 6 5 7 100

Sample Output

175

Source

Unknown
思路:

#include<bits/stdc++.h>
using namespace std;#define ll long long
#define eps 1e-9
#define pi acos(-1)const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 1000 + 8;int n, a[maxn], sum[maxn], dp[maxn][maxn];int main()
{std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);sum[0] = 0;while(cin >> n){memset(dp, 0, sizeof(dp));for(int i = 1; i <= n; i++){cin >> a[i];sum[i] += a[i] + sum[i - 1];}for(int i = 1; i <= n; i++){for(int j = 1; j + i <= n; j++){int en = j + i;int tmp = sum[en] - sum[j - 1];dp[j][en] = inf;for(int k = j; k < en; k++)dp[j][en] = min(dp[j][en], dp[j][k] + dp[k + 1][en] + tmp);}}cout << dp[1][n] <<'\n';}return 0;
}

转载于:https://www.cnblogs.com/RootVount/p/11480385.html

SDNU 1045.石子合并1(区间dp)相关推荐

  1. SDNU 1048.石子合并2(区间dp)

    Description 有n堆石子排成一圈,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和.已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分. Input ...

  2. 算法基础课-动态规划-区间dp-AcWing 282. 石子合并:区间dp

    文章目录 题目分析 题目链接 题目分析 只能合并相邻两堆.求体力最小值 数据比较弱,最多300堆,每堆重量不超过1000. 状态表示 f[i][j]表示合并区间[i,j]需要的最小体力 状态转移 把区 ...

  3. 石子合并(区间dp)

    题目链接 设有N堆石子排成一排,其编号为1,2,3,-,N. 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆. 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合 ...

  4. SDNU 1013.石子合并简化版

    SDNU 1013.石子合并简化版 Time Limit: 1000 MS Memory Limit: 32768 KB Total Submission(s): 709 Accepted Submi ...

  5. SDNU 1178.能量项链(区间dp)

    Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠 ...

  6. 石子合并(动态规划DP)

    时限: 1000ms 内存限制:10000K  总时限:3000ms 描述: 在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成 ...

  7. CSP认证201612-4 压缩编码[C++题解]:区间dp、huffman树、石子合并

    题目分析 来源:acwing 分析: 本题难在想到是区间dp.想到区间dp之后,这就是石子合并的代码直接默写. 那么是如何建模的呢?我们把huffman编码(这里要求按照字典序大小编码,和huffma ...

  8. AcWing 1068. 环形石子合并(环形区间DP)

    AcWing 1068. 环形石子合并(环形区间DP) 一.问题 二.思路 三.代码 一.问题 二.思路 在讲解这道题之前,我们需要先掌握线性的区间DP问题,如果对于线性区间DP的解决方式还不了解的话 ...

  9. dp2:线性dp、区间dp、计数dp.

    线性dp   动态规划时间复杂度分析,状态数目与状态转移次数相乘. 数字三角形 数字三角形 以集合的观点考虑dp问题. #include<iostream> #include<cst ...

最新文章

  1. signature=0e42fe6b348b65f88748ba8ecefece12,Low power BIST
  2. java11正式发布了,让java代码更完美
  3. [置顶]C#执行Excel宏模版的方法
  4. Visual Studio Team System 2008 安装失败
  5. Chrome firefox ie等浏览器空格(nbsp;)兼容问题
  6. 解决 VMware 新装 CentOS 7.* 连不上网络
  7. 高项论文(沟通管理)
  8. 探索ESP8285(3)通过EMQX服务器点亮一个LED灯
  9. OBJ格式建筑模型数据处理步骤
  10. 漫谈可视化Prefuse(五)---一款属于我自己的可视化工具
  11. [QT]clicked(bool)与toggled(bool)区别
  12. 仿掘金社区全栈项目开发(二)-前端工程化
  13. OPPO手机设备安装谷歌服务套件GMS,使用Play商店
  14. 地球人的来源1【由罗斯威尔事件得到的可能解释】
  15. 2022 腾讯社招Golang后端面试经验分享
  16. CPU使用率达到100%
  17. 吐血推荐cookie和session
  18. 注册页面跳转登入页面无法正常显示返回的是页面名称的字符串,而不是页面
  19. 分享45个android实例源码,很好很强大.收藏吧!!! http://www.apkbus.com/forum.php?mod=viewthreadtid=20978 (出处: Android开
  20. 双极晶体管是什么?MOS FET和CMOS的关系?

热门文章

  1. lamp兄弟连视频笔记
  2. SQL-92标准 中文翻译——定义、记号和约定 (定义)
  3. while循环练习:
  4. linux指令快速复制粘贴[龟速更新中]
  5. Java配置----JDK开发环境搭建及环境变量配置
  6. Django中手动创建虚拟环境
  7. 像Excel一样使用python进行数据分析(2)
  8. unity3d 随机生成地形之随机山脉
  9. dell的1501和640m,买哪个好呢?
  10. 牛客假日团队赛2 A.买一送一