题目大意:

N( 4 ≤ N ≤ 100 ),表示项链上珠子的个数

第二行是N个用空格隔开的正整数,所有的数均不超过1000。

第 i 个数为第 i 颗珠子的头标记( 1 ≤ i ≤ N ),

当 1 ≤ i < N 时,第 i 颗珠子的尾标记应该等于第 i+1 颗珠子的头标记。

第N颗珠子的尾标记应该等于第1颗珠子的头标记。

输出是一个正整数E( E ≤ 2.1×109 ),为一个最优聚合顺序所释放的总能量。

Sample Input

4
2 3 5 10

Sample Output

710

一道环形的矩阵连乘

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main()
{
ll n,dp[][],a[];
scanf("%lld",&n);
for(int i=;i<n;i++) scanf("%lld",&a[i]);
for(int i=;i<n;i++) fill(dp[i],dp[i]+,);
for(int i=;i<n;i++) /// 先处理初始状态 最少为相邻两个聚合 即长度为2
dp[i][(i+)%n]=a[i]*a[(i+)%n]*a[(i+)%n];
/// 环形 注意各个位置的求模 i为0~n-1 模n恰好
ll ans=;
for(int i=;i<=n;i++) // 枚举长度 从3开始
for(int l=;l<n;l++) { // 枚举开头
int r=(l+i-)%n; // 得到该长度时的最右端
for(int k=;k<i;k++) { // 枚举分段的长度
int m=(l+k-)%n; // 得到该分段的最右端
dp[l][r]=max(dp[l][r],
dp[l][m]+dp[(m+)%n][r]+a[l]*a[(m+)%n]*a[(r+)%n]);
} /// 左端+右端+左右两端聚合所得能量
if(i==n) ans=max(ans,dp[l][r]); // 更新答案
}
printf("%lld",ans); return ;
}

能量项链 /// oj23800的更多相关文章

  1. [题解]vijos & codevs 能量项链

    a { text-decoration: none; font-family: "comic sans ms" } .math { color: gray; font-family ...

  2. NOIP2006能量项链[环形DP]

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

  3. [codevs1154][COJ0177][NOIP2006]能量项链

    [codevs1154][COJ0177][NOIP2006]能量项链 试题描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这 ...

  4. TYVJ P1056 能量项链 Label:环状区间DP

    做题记录:2016-08-16 20:05:27 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头 ...

  5. tyvj 1056 能量项链 区间dp (很神)

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  6. 1154 能量项链[区间dp]

    1154 能量项链 2006年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 在Ma ...

  7. 能量项链//区间DP

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  8. wikioi 1154 能量项链

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

  9. NOIP2006 能量项链

    洛谷1063 能量项链 本题地址:http://www.luogu.org/problem/show?pid=1063 题目描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N ...

随机推荐

  1. Download ubuntu Linux

    https://ubuntu.com/download/desktop

  2. RDBMS关系型数据库与HBase的对比

    关系型数据库 结构: * 数据库以表的形式存在 * 支持FAT.NTFS.EXT.文件系统 * 使用Commit log存储日志 * 参考系统是坐标系统 * 使用主键(PK) * 支持分区 * 使用行 ...

  3. Qt无边框窗口的移动、拉伸边框、鼠标滚轮缩放大小

    主要是处理窗口上鼠标的几个事件,具体代码请看下面的截图, 完整代码的下载链接在此:http://download.csdn.net/detail/beyond0824/9657110, 本示例代码中, ...

  4. Unity 之事件系统

    游戏开发过程中事件是非常多的,可以通过 Messenger 事件系统来解藕,用法如下: 使用方法 例子:在按下拍照按钮后通知刷新好友面板 步骤1.添加事件字段,该字段具有唯一性 在MessangerE ...

  5. 对Springdata模块的简单理解

    有关于Spring对数据库的操作属于为Spring中的Springdata模块,对数据库的操作.Spring对JDBC和Mybatis都有封装与简化 可以从以下角度学习研究 SpringData: 1 ...

  6. python包下载路径

    python所有包.模块镜像站 https://www.lfd.uci.edu/~gohlke/pythonlibs/

  7. Python中字典的详细用法

    #字典 #字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 #一.字典的使用 #在某些情况下,字典比列表更加适用: ...

  8. 什么是哈希Hash(散列函数)

    Hash(散列函数) Hash,一般翻译做散列.杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射,也就 ...

  9. c++隐藏运行exe黑窗口

    加入main方法隐藏窗口 HWND hwndDOS = GetForegroundWindow(); ShowWindow(hwndDOS, SW_HIDE);

  10. Hadoop的局限与不足