题目大意:

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. 在vue中使用handsontable

    1.使用npm安装 npm install handsontable @handsontable/vue 2.定义结构 <hot-table :settings="hotSetting ...

  2. NX二次开发-UFUN创建倒角UF_MODL_create_chamfer

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> UF_initialize(); //创建块 UF_FEATURE_SIGN S ...

  3. python之tkinter学习目录

    前言 下面的目录结构,采用的学习视频资料是网易云课堂中[莫凡]老师的,在目录的最下面的地方给出了对应的链接! 学习是逐渐积累起来的,代码也是!下面的每一篇中的对应代码,都秉承着这样的一个理念:代码是成 ...

  4. class4_Listbox 列表部件

    最终的运行效果图: #!/usr/bin/env python# -*- coding:utf-8 -*-# --------------------------------------------- ...

  5. java 判断int类型为空

    int id = 10; if("0".equals(String.valueOf(id)) || "null".equals(String.valueOf(i ...

  6. spring boot junit test

    这里分三种,1.测普通方法或通过原生java API接口调用 2.基于spring依赖注入调用 3.controller层调用 需要引入依赖:默认springboot已经引入 <dependen ...

  7. 《转》python8元组

    转自 http://www.cnblogs.com/BeginMan/p/3156235.html 一.元组特性 1.类似列表,但不可变类型,正因如此,它可以做一个字典的key2.当处理一组对象时,这 ...

  8. Word 多级节标题设置和图表章节号自动生成

    写文章的时候,正文.图表.节标题,通过“样式”可以进行统一设置,这里我记录了几点小技巧: 1.多级标题如何设置 假设我要设置三级标题,下面以图的形式记录方式: 设置完之后,应用即可. 章节设定之后,可 ...

  9. JS对象 字符串分割 split() 方法将字符串分割为字符串数组,并返回此数组。 语法: stringObject.split(separator,limit)

    字符串分割split() 知识讲解: split() 方法将字符串分割为字符串数组,并返回此数组. 语法: stringObject.split(separator,limit) 参数说明: 注意:如 ...

  10. ctx.beginPath()开始新路径

    beginPath() 方法开始一条路径,或重置当前的路径. 提示:请使用这些方法来创建路径 moveTo().lineTo().quadricCurveTo().bezierCurveTo().ar ...