和石子合并很像, 为了对环状进行处理, 我们可以把输入数据复制一份接连在后边. 这样在最后的结果枚举起点找最大即可.

注意这里代价的计算, 因为我们的data[i]只记录了珠子的头 , 珠子的尾部即是下一个珠子的头部.

//因为计算dp[i][j]时需要

用到dp[i][k] k比j小 所以j要顺序DP

也需要用到dp[k][j] k比i大 所以i要逆序 DP

k插入即可

for (int i = 2*n-1; i >=1 ; --i){for (int j = i; j <= 2*n; ++j){dp[i][j] = 0;for (int k = i; k < j ; ++k) dp[i][j] = max(dp[i][j], dp[i][k] + dp[k+1][j] +  zz[i]*zz[k+1]*zz[j+1]); }
}

或者用len的方式来遍历 更容易写

for( int len = 1; len < 2*n; ++len ){for (int i = 1; i <= 2*n-len; ++i){int j = i + len;dp[i][j] = 0;for (int k = i; k < j; ++k)dp[i][j] = max(dp[i][j], dp[i][k]+dp[k+1][j] + zz[i]*zz[k+1]*zz[j+1]);}
}

转载于:https://www.cnblogs.com/yuchenlin/p/sjtu_oj_1073.html

【算法学习笔记】85.破环为链 序列DP 松弛+代价 SJTU OJ 1073 能量项链相关推荐

  1. 数据结构与算法学习笔记——链栈

    数据结构与算法学习笔记(C语言) 链栈 在开始链栈的学习之前,我们先实现一下上一篇文章中提到的检查括号匹配的小程序,鉴于水平有限,本人就随便写一下代码好了,目标仅限于对功能的实现. /*用顺序栈这种数 ...

  2. 输出dag的所有拓扑排序序列_算法学习笔记(53): 拓扑排序

    拓扑排序是对DAG(有向无环图)上的节点进行排序,使得对于每一条有向边 , 都在 之前出现.简单地说,是在不破坏节点 先后顺序的前提下,把DAG拉成一条链.如果以游戏中的科技树(虽然名字带树,其实常常 ...

  3. 深度强化学习笔记02-马尔可夫链

    深度强化学习笔记02-马尔可夫链 这几天杂事比较多,看了一些相关内容,但是没有时间形成笔记,此笔记复制与datawhale的MDP一节,后期自己学习填补. MDP [外链图片转存失败,源站可能有防盗链 ...

  4. 数据结构与算法学习笔记之 提高读取性能的链表(上)

    数据结构与算法学习笔记之 提高读取性能的链表(上) 前言 链表(Linked list)比数组稍微复杂一点,在我们生活中用到最常见的应该是缓存,它是一种提高数据读取性能的技术,常见的如cpu缓存,浏览 ...

  5. 网络流算法学习笔记——最大流问题基本概念和Ford-Fulkerson方法(标号法C++实现)

    屈婉玲<算法设计与分析>第2版第7章网络流算法学习笔记. 基本概念 最大流问题,相当于有从s到t的供水系统,每段路径都有限定流量,除了s.t两地外,每个中间点都不能滞留,从s流入多少,就从 ...

  6. 算法学习笔记:网络流#4——ISAP 求解最大流

    算法学习笔记:网络流#4--ISAP 求解最大流 1. 前言 2. 模板 2.1 详解 2.2 正确性证明 2.3 代码 3. 算法对比 3.1 一般数据下的对比 3.2 特殊数据下的对比 4. 总结 ...

  7. 数据结构与算法学习笔记——图 C++实现

    数据结构与算法学习笔记--图 C++实现 1 概念 2 图的表示方法 3 算法 3.1 拓扑排序 3.2 图的搜索算法 3.2.1 广度优先搜索(BFS) 3.2.2 深度优先搜索(DFS) 3.3 ...

  8. 数据结构与算法学习笔记之先进先出的队列

    前言 队列是一种非常实用的数据结构,类似于生活中发排队,可应用于生活,开发中各个方面,比如共享打印机(先请求先打印),消息队列.你想知道他们是怎么工作的么.那就来一起学习一下队列吧 正文 一.队列的定 ...

  9. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

最新文章

  1. python基础知识整理 第一节:入门记录(包含代码与执行结果)
  2. FSWD_1_BasicHtmlCss
  3. manjaro笔记本显卡驱动_从入门到高端!AMD Radeon RX 500系列移动显卡全解析
  4. 计算机应用基础教案 马成荣,江苏省职业学校计算机应用基础(马成荣主编)课程两课评比教案:单元教学设计说明...
  5. Python3网络爬虫(四): 登录
  6. progressIndicator in SalesPipeline
  7. Firebug控制台详解[转]
  8. 谷歌官宣安卓改名!甜点不再
  9. html 点击选择变色,JS实现菜单点击后变色
  10. Porteus 2.0 RC1 发布,轻量级 Linux 版本
  11. 世界各国各地区名称代码对应表
  12. 用GHOST一键恢复之后,电脑只剩C盘了
  13. 使用SpreadJS迅速开发一套属于自己的欧洲杯赛程小工具
  14. Pytorch模型训练(0) - CPN源码解析
  15. java cnzz爬数据_PHPcurl抓取cnzz统计数据
  16. html的页脚设计,如何单独设置页眉页脚
  17. Mina中的Snark Worker
  18. layui使用formselect4完成的下拉框多选,拼音搜索
  19. NDK - JNI官方中文资料
  20. oracle move不能操作分区,关于Oracle分区表的move操作

热门文章

  1. java爬虫隐藏表单提交_java爬虫--jsoup简单的表单抓取案例
  2. PTA9、计算利率 (10 分)
  3. Java深入 - servlet和Spring的DispatcherServlet详解
  4. api 微信内置浏览器js_微信小程序和HTML的区别
  5. ios上textarea不能输入
  6. .net面试题(会持续更新)
  7. 记一次ElasticSearch重启之后shard未分配问题的解决
  8. Android学习笔记View的工作原理
  9. JAVA异常使用_每个人都曾用过、但未必都用得好
  10. [wp7游戏]wp7~~超级血腥类游戏~~集合贴~~