正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1063


题目大意

有n个珠子组成环,每颗珠子的头尾标记连接,将两颗珠子合并会产生headi∗headj∗tailjheadi∗headj∗tailjhead_i*head_j*tail_j的能量,产生一颗头标记为头珠子的头标记,尾标记为尾珠子的尾标记。
求所以珠子合并最大能量


解题思路

裸的区间dp


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,h[210],t[210],maxs,f[210][210];
int main()
{    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {        scanf("%d",&h[i]);
        h[i+n]=t[i+n-1]=t[i-1]=h[i];
    }
    t[2*n]=h[1];
    for(int i=2;i<=n;i++)
      for(int l=1;l<=2*n-i+1;l++)
      {        int r=l+i-1;
        for(int k=l;k<r;k++)
        {            f[l][r]=max(f[l][r],f[l][k]+f[k+1][r]+h[l]*t[k]*t[r]);
            //动态转移
        }
        if(i==n) maxs=max(maxs,f[l][r]);
      }
    printf("%d",maxs);
}

P1063-能量项链【区间dp】相关推荐

  1. 洛谷 P1063 能量项链 区间dp

    洛谷 P1063 题意:在一串项链中,是环状的,第 i 颗珠子有两个能量a[i]和a[i+1],第i+1颗珠子有两个能量a[i+1]和a[i+2],可以合并两个珠子,得到a[i]*a[i+1]*a[i ...

  2. P1063 [NOIP2006 提高组] 能量项链 区间dp

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

  3. 能量项链--区间dp典例

    题目 思路 1.断环成链 2.区间大小枚举 3.区间起点枚举 4.区间的划分枚举 分析 1.可以采用处理环形问题的通用技巧,即复制一份接到后面.这里虽然输入是N个数,但实际上我们要求的是长N + 1的 ...

  4. 【每日DP】day12、P1063 能量项链(区间DP又一模板,震惊,只需要4行代码?)难度⭐⭐⭐

    P1063 能量项链 本题(NOIP2006)和石子合并(NOI1999)几乎一模一样 垃圾NOIP抄袭NOI,手动狗头 但是还是有细微的区别的,首先你得先能看懂题,石子合并是N堆石子,是i−ki-k ...

  5. P1063 能量项链

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

  6. P1063 能量项链(C++_区间dp)

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

  7. 【动态规划】区间dp: P1063能量项链

    本题和合并石子果子一样,都是枚举最后一次合并的点 [动态规划笔记]区间dp:合并果子_m0_52043808的博客-CSDN博客 区别: 1.需要断环为链 2.每一堆石子变为两个值,这里用结构体实现 ...

  8. Noip P1063 能量项链

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

  9. 洛谷 P1063 能量项链

    题目传送门 解题思路: 一道很模板的环形dp,要注意状态转移时串的头和尾到底是哪个. AC代码: 1 #include<cstdio> 2 #include<iostream> ...

  10. 【P1063】 能量项链

    之前一直在luogu博客上 2018年12月25日17:15:52     copy到博客园 P1063 能量项链 简单的区间dp 通过解决小区间来影响大区间 环形问题 存储的时候存两边 变成 2*N ...

最新文章

  1. flex 动态显示时间
  2. C#语句——循环语句(for循环与for循环嵌套)
  3. C++面向对象类的实例题目一
  4. n个节点的二叉树n+1_使用C ++程序将链接列表中的最后N个节点附加到第一个
  5. BZOJ 2242: [SDOI2011]计算器 [快速幂 BSGS]
  6. oracle更换rac节点,Oracle-rac 更改VIP地址—2节点的
  7. 如何导入一个项目 myeclipse
  8. pandas Series 判断每个元素是否包含某个子串
  9. 小程序--计算正负数个数
  10. 未来智慧城市长啥样?华为云让我们到深圳看一看
  11. 特斯拉AI日的感知之旅
  12. 计网实验(一):IP子网划分
  13. yum安装ruby_安装 Ruby
  14. ps计算机内存不足请保存文件并关闭,保存技巧,如何解决PS内存不足无法存储的错误提示情况...
  15. 7-12 求和:m+mm+mmm+mmmm+ ... +mmm……mmm(n个m)
  16. 服务器2003如何修复0,Windows Server 2003 SP2补丁无法安装解决方法(密钥无效)
  17. 2019年暑假第八周总结
  18. NCCL配置多卡运行
  19. Spring OAuth2 授权服务器配置详解
  20. Arduino图形化编程

热门文章

  1. php父子遍历,php无限分类父子追溯方法
  2. java io流 教程_Java基础教程:IO流与文件基础
  3. 云服务器下行_腾讯云轻量应用服务器简单测评
  4. python字符串设置字体_python怎么更改字符串后几位
  5. java emoji编码转换_java转换emoji表情
  6. sql两个表查不同数据_产品操作MySQL第6篇 – 数据过滤-WHERE子句
  7. [Swagger2]配置Swagger
  8. C++二维数组作为函数参数
  9. [C++11]共享智能指针shared_ptr指定删除器
  10. JAVA解决生产消费者_Java常用三种方式解决生产者消费者问题(详细)