NOIP2006提高组 能量项链
题目
这道题是一道区间DP的题目具体推导过程有参看洛谷题解
对于将两颗珠子合并为一颗珠子,能量=左边一颗珠子*右边一颗珠子*右边的下一颗珠子;
三颗珠子合在一起,能量max = max(左边两颗珠子合在一起的能量+合并后与右边一颗珠子合并的能量, 右边两颗珠子合并后的能量+合并后与左边一颗珠子合并在一起的能量)。
于是得到了代码中的状态转移方程
#include<iostream>
#include<cstdio>
#include<algorithm> using namespace std;
typedef long long ll; const int MAXN = 300; int n; ll val[MAXN], f[MAXN][MAXN]; ll answer=-1;
int main() { // freopen("energy.in","r",stdin); // freopen("energy.out","w",stdout);scanf("%d", &n);for(int i = 1; i <= n; i++){
scanf("%lld", &val[i]);
val[i+n] = val[i];
}for(int i = 2; i < 2*n; i++)for(int j = i-1; i-j<n && j>=1; j--){
for(int k = j; k < i; k++)f[j][i] = max(f[j][i], f[j][k]+f[k+1][i]+val[j]*val[k+1]*val[i+1]);if(f[j][i] > answer) answer = f[j][i]; }printf("%lld", answer);return 0; }
转载于:https://www.cnblogs.com/stooge/p/9885188.html
NOIP2006提高组 能量项链相关推荐
- P1063 [NOIP2006 提高组] 能量项链 区间dp
题目链接 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两颗珠子,前一颗珠子的 ...
- 洛谷 P1063 [NOIP2006 提高组] 能量项链
本题应通过演算过程发现最终问题的解决可由两个相同规模较小的问题轻松地转化过来.(一般分治时只分成两个简化程序) 用f[i][j]表示以a[i]开头a[j]结尾的数串的最大和,如k为i,j之间任一节点, ...
- 【NOIP2006提高组】能量项链
题目背景 NOIP2006提高组试题1. 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有 N 颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并 ...
- P1064 [NOIP2006 提高组] 金明的预算方案
P1064 [NOIP2006 提高组] 金明的预算方案 题意: 每个物品有价格和价值,物品之间存在依赖关系(单向的),现在又n元钱,买哪些物品,即满足依赖关系又使得每件物品的价格与价值的乘积的总和最 ...
- 信息学奥赛一本通 1844:【06NOIP提高组】金明的预算方案 | 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案
[题目链接] ybt 1844:[06NOIP提高组]金明的预算方案 洛谷 P1064 [NOIP2006 提高组] 金明的预算方案 [题目考点] 1. 动态规划:分组背包 2. 动态规划:依赖背包 ...
- 【背包DP练习】洛谷 P5020货币系统 P1757通天之分组背包 P1064[NOIP2006 提高组]金明的预算方案 P5322 [BJOI2019]排兵布阵
洛谷 P5020货币系统 https://www.luogu.com.cn/problem/P5020 思路是把货币从小到大排序,然后按顺序依次完全背包dp,每次dp检查i-1种面值的货币能不能凑出第 ...
- 能量项链(NOIP-2006 提高组)
Problem Description 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数.并且,对于相邻的两 ...
- [NOIP2006] 提高组 洛谷P1066 2^k进制数
题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的那一位. (3)将r转换为2进制数q后 ...
- 【动态规划】Vijos P1313 金明的预算方案(NOIP2006提高组第二题)
题目链接: https://vijos.org/p/1313 题目大意: m(m<=32000)金钱,n(n<=60)个物品,花费vi,价值vi*ci,每个物品可能有不超过2个附件,附件没 ...
最新文章
- Python操作dict时避免出现KeyError的几种方法
- 2019信安国赛逆向easyGo,bbvvmm题解
- html文档定义层标记是,HTML文档定义层的标记是()
- echarts地图json实现
- java映射的概念_Java 反射 概念理解
- 原型图和设计常犯错误,导致前端页面返工
- Cloud Foundry 在 Azure 中国正式发布
- 解决eclipse中svn插件总是提示输入密码的问题
- 10分钟带你光速入门运维工具之-Puppet
- 文件系统VFS数据结构(超级块 inode dentry file)(收集整理)
- 【Javascript】学习指南
- SoapUI接口测试——SoapUI简介
- java怎么判断素数_java判断是否为素数(质数)的方法
- SQLyog 注册码记录
- linux spdbv教程,计算机化学实践基础教程
- struts2之拦截器详解
- 论以建筑全生命周期管理建设公司大数据平台
- 【网络安全学习笔记】
- 《勋伯格和声学》读书笔记(十一):相隔三个和四个循环五度的转调
- 网页版2048html制作,基于HTML+CSS+JS的网页版2048的实现