区间dp——合并金币
链接:https://www.nowcoder.com/questionTerminal/6d3ccbc5b6ad4f12b8fe4c97eaf969e0
来源:牛客网
有 N 堆金币排成一排,第 i 堆中有 C[i] 块金币。每次合并都会将相邻的两堆金币合并为一堆,成本为这两堆金币块数之和。经过N-1次合并,最终将所有金币合并为一堆。请找出将金币合并为一堆的最低成本。
其中,1 <= N <= 30,1 <= C[i] <= 100
输入描述:
第一行输入一个数字 N 表示有 N 堆金币
第二行输入 N 个数字表示每堆金币的数量 C[i]
输出描述:
输出一个数字 S 表示最小的合并成一堆的成本
示例1
输入
4 3 2 4 1
输出
20
示例2
输入
30 10 20 30 40 50 60 70 80 90 100 99 89 79 69 59 49 39 29 19 9 2 12 22 32 42 52 62 72 82 92
输出
7307
遇到相邻的,就要往区间dp上想
注意初始化。
代码:
#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
int main()
{int n;int c[50],sum[50],dp[50][50];while(scanf("%d",&n)!=EOF){memset(dp,INF,sizeof(dp));memset(sum,0,sizeof(sum));for(int i=1;i<=n;i++){scanf("%d",&c[i]);sum[i]=sum[i-1]+c[i];dp[i][i]=0;}for(int len=1;len<=n;len++){///区间长度for(int i=1;i+len<=n;i++){///首int wei=i+len;for(int k=i;k<wei;k++)///中间。尾是“j+i-1”{dp[i][wei]=min(dp[i][wei],dp[i][k]+dp[k+1][wei]+sum[wei]-sum[i-1]);}}}printf("%d\n",dp[1][n]);}
}
区间dp——合并金币相关推荐
- CSP认证201612-4 压缩编码[C++题解]:区间dp、huffman树、石子合并
题目分析 来源:acwing 分析: 本题难在想到是区间dp.想到区间dp之后,这就是石子合并的代码直接默写. 那么是如何建模的呢?我们把huffman编码(这里要求按照字典序大小编码,和huffma ...
- 合并石子 区间dp水题
合并石子 链接: nyoj 737 描述: 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N- ...
- [蓝桥杯][算法提高VIP]合并石子(区间dp+平行四边形优化)
题目描述 在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数.求把所有石子合并成一堆的最小花费. 输入 输入第一行包含一个整数 ...
- LeetCode 1000. 合并石头的最低成本(区间DP)
文章目录 1. 题目 2. 解题 1. 题目 有 N 堆石头排成一排,第 i 堆中有 stones[i] 块石头. 每次移动(move)需要将连续的 K 堆石头合并为一堆,而这个移动的成本为这 K 堆 ...
- 区间DP初探 P1880 [NOI1995]石子合并
https://www.luogu.org/problemnew/show/P1880 区间dp,顾名思义,是以区间为阶段的一种线性dp的拓展 状态常定义为$f[i][j]$,表示区间[i,j]的某种 ...
- bzoj4565 [HAOI2016]字符合并 结论+状压+区间dp
如果k==2的话就是记搜, 但这个题用记搜的思路的话是需要枚举k个断点的, 所以对于枚举断点,就很可能有优化,比如到一个断点,一个决策的最优值 于是考虑区间dp模型,相当于是插入一个数,然后看影响. ...
- AcWing.282石子合并(区间DP)题解
石子合并 题目描述 设有N堆石子排成一排,其编号为1,2,3,-,N. 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆. 每次只能合并相邻的两堆,合并的代价为这两堆石子的质 ...
- 区间DP之环形石子合并
环形石子合并 题目传送门 题目描述 将 n 堆石子绕圆形操场排放,现要将石子有序地合并成一堆. 规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数记做该次合并的得分. 请编写一个程序,读入堆 ...
- 石子合并/能量项链【区间dp】
题目链接:http://www.51mxd.cn/problem.php-pid=737.htm 题目大意:给出n个石子堆以及这n个石子堆中石子数目,每次操作合并两个相邻的石子堆,代价为两个石子堆数目 ...
最新文章
- 【Live555】live555源码详解(二):BasicHashTable、DelayQueue、HandlerSet
- 成功解决如何去掉输出字典,前边的dict_keys
- TabControl控件
- scrollHeight、clientHeight、offsetHeight、scrollTop等的定义以及图解
- jcache_窥探JCache API(JSR 107)
- linux命令之kill篇
- CDH集群异常处理ERROR Failure due to stall on seeded torrent.、重装时hdfs提示目录已存在、CDH重启不正常
- ajax 批量上传图片插件,TinyMCE多图片批量上传(Ajax)教程
- 【错误纠正】关于文章《绕开数学,讲讲信息论》
- 不要小看它——编码与解码
- JDRefresh 轻简下拉刷新框架
- 34. Differentiate between inheritance of interface and inheritance ofimplementations
- js操作浏览器cookie详解
- 前端使用goeasy
- Inception模块 GooLeNet网络
- 关于torch.bmm()函数计算过程
- 2020年一套正版的solidworks多少钱
- 微信小程序自定义选中样式打小勾
- 数据泄露事件频发,数据安全迫在眉睫
- Linux中/dev/ram是什么?
热门文章
- 设计模式-day05
- webrtc】windows 构建 :depot_tools 采坑
- java核心技术卷代码下载
- 怎么会有两个“原本”
- 七、Android/Linux安全机制简单了解
- 苹果手机如何关闭自动续费_微信支付宝一键关闭自动续费
- 关于sockjs.js?9be2:1606 GET http://****/sockjs-node/info?t=1581148413474 net::ERR_CONNECTI 错误解决方案
- 对于Tencent Files文件夹需要来自LAPTOP-PH9TIHGE\用户名的权限才能删除的解决办法
- Android支持百分比布局
- 11.30黄金伦敦金还会跌吗?黄金原油独家交易指导及策略解套