SDNU 1048.石子合并2(区间dp)
Description
Input
Output
Sample Input
5 7 6 5 7 100
Sample Output
175
Source
#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], mi;int main() {std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n;sum[0] = 0;for(int i = 1; i <= n; i++){cin >> a[i];sum[i] += a[i] + sum[i - 1];}for(int len = 1; len <= n; len++){for(int i = 1; i <= n; i++){int en = (i + len) % n == 0 ? n : (i + len) % n;int tmp;if(i + len <= n)tmp = sum[i + len] - sum[i - 1];elsetmp = sum[n] - sum[i - 1] + sum[(i + len) % n];dp[i][en] = inf;for(int k = 0; k < len; k++)dp[i][en] = min(dp[i][en], dp[i][(i + k) % n == 0 ? n : (i + k) % n] + dp[(i + k + 1) % n == 0 ? n : (i + k + 1) % n][en] + tmp);}}mi = dp[1][n];for(int i = 2; i <= n; i++)if(mi > dp[i][i - 1])mi = dp[i][i - 1];cout << mi <<'\n';return 0; }
转载于:https://www.cnblogs.com/RootVount/p/11480394.html
SDNU 1048.石子合并2(区间dp)相关推荐
- 算法基础课-动态规划-区间dp-AcWing 282. 石子合并:区间dp
文章目录 题目分析 题目链接 题目分析 只能合并相邻两堆.求体力最小值 数据比较弱,最多300堆,每堆重量不超过1000. 状态表示 f[i][j]表示合并区间[i,j]需要的最小体力 状态转移 把区 ...
- 石子合并(区间dp)
题目链接 设有N堆石子排成一排,其编号为1,2,3,-,N. 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆. 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合 ...
- SDNU 1013.石子合并简化版
SDNU 1013.石子合并简化版 Time Limit: 1000 MS Memory Limit: 32768 KB Total Submission(s): 709 Accepted Submi ...
- SDNU 1045.石子合并1(区间dp)
Description 有n堆石子排成一行,每次选择相邻的两堆石子,将其合并为一堆,记录该次合并的得分为两堆石子个数之和.已知每堆石子的石子个数,求当所有石子合并为一堆时,最小的总得分. Input ...
- SDNU 1178.能量项链(区间dp)
Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠 ...
- 石子合并(动态规划DP)
时限: 1000ms 内存限制:10000K 总时限:3000ms 描述: 在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成 ...
- CSP认证201612-4 压缩编码[C++题解]:区间dp、huffman树、石子合并
题目分析 来源:acwing 分析: 本题难在想到是区间dp.想到区间dp之后,这就是石子合并的代码直接默写. 那么是如何建模的呢?我们把huffman编码(这里要求按照字典序大小编码,和huffma ...
- AcWing 1068. 环形石子合并(环形区间DP)
AcWing 1068. 环形石子合并(环形区间DP) 一.问题 二.思路 三.代码 一.问题 二.思路 在讲解这道题之前,我们需要先掌握线性的区间DP问题,如果对于线性区间DP的解决方式还不了解的话 ...
- dp2:线性dp、区间dp、计数dp.
线性dp 动态规划时间复杂度分析,状态数目与状态转移次数相乘. 数字三角形 数字三角形 以集合的观点考虑dp问题. #include<iostream> #include<cst ...
最新文章
- gcvt字符串转换函数应用实例
- Sublime Text 关闭自动更新
- YII中session和cookie
- 如何进行聚类可视化_如何使用matplotlib包进行数据可视化
- 分布式数据库与缓存双写一致性方案解疑
- 计算机虚拟机安装教程,VMware(虚拟机)装Win7系统详细图文教程
- 汇编语言--寄存器间接寻址
- checkio Ascending List
- Excel条件格式使用小总结
- 计算机课前导学结题报告,《导学──自悟》课题研究的结题报告
- 微信抢票——迭代周期一结束后感想
- SQL实战45.将titles_test表名修改为titles_2017
- 解决方案之Android 国际化资源完美兼容6.0,7.0,8.0
- Collections集合
- C语言通讯录系统程序设计
- 人人极客专访 | 我和我们的操作系统
- 昂达平板不能开机刷机_昂达平板电脑打不开机怎么办
- MySQL知识点详解
- iGrimace1.44基本使用方式
- 上海高中计算机学校门槛,“魔都”上海最难进的5所中学,入学门槛高,能进的人都不一般@...