【题解】2006 能量项链(P1063)
来源:互联网 发布:哥伦比亚大学 知乎 编辑:程序博客网 时间:2024/06/11 00:14
原题链接
算法解析
一道非常经典的区间DP,说是区间,实际上是一个环形DP。对于某一区间范围内的所有珠子,它们的能量最大值为 左右两边合成的最大值+这两颗珠子产生的能量值 。用
示例代码
#include <bits/stdc++.h>using namespace std;int n, v[201], f[201][201], ans, j;//注意数组要两倍大小int main(){ scanf ( "%d", &n ); for ( int i = 1; i <= n; i++ ) scanf ( "%d", &v[i] ), v[i+n] = v[i];//把所有珠子连成一条链,变成一条直线上的数组,也就是所谓的破环成链 for ( int len = 1; len < n * 2; len++ ){//定义枚举的区间 for ( int i = 1; i < n * 2 - len + 1; i++ ){//枚举左端点 j = i + len - 1;//计算出右端点 for ( int k = i; k < j; k++ )//从左端点到右端点枚举断点 f[i][j] = max ( f[i][j], f[i][k] + f[k+1][j] + v[i] * v[k+1] * v[j+1] );//状态转移方程 } } for ( int i = 1; i <= n; i++ ) ans = max ( ans, f[i][i+n-1] );//在链上枚举每一种情况,找到最优解 printf ( "%d\n", ans ); return 0;}
阅读全文
2 1
- 【题解】2006 能量项链(P1063)
- P1063 能量项链(区间dp)
- 洛谷 P1063 能量项链
- 洛谷【P1063】能量项链
- [P1063]能量项链
- 洛谷 P1063 能量项链
- P1063 能量项链
- 能量项链 洛谷P1063
- 洛谷p1063能量项链
- 洛谷P1063 能量项链
- 【DP】洛谷 P1063 能量项链
- [动态规划] 洛谷P1063 能量项链 (石子合并)
- noip 2006 能量项链 题解
- 洛谷 P1063 [NOIP2006 T1] 能量项链
- |洛谷|NOIP2006|动态规划|P1063 能量项链
- Noip06能量项链题解
- 【NOIP2006】能量项链题解
- NOIP2006 能量项链题解
- 《面试》 --阿里巴巴数据分析岗面试编程题解析
- spark所支持的文件格式
- Centos 6,7安装用yum命令 mysql 5.7
- shell常用代码
- css中position的详细介绍
- 【题解】2006 能量项链(P1063)
- java jar的解释
- 改写ui-grid headerCellTemplate
- 【PHP】深入理解PHP的session。
- C#跨窗体传值的几种方法分析(很详细)
- 使用ARM芯片的小型NAS设备的一次存储故障的检修
- 最大连续子数组的和(记录子数组范围)
- Dubbo-Admin管理平台和Zookeeper注册中心的搭建
- JavaScript 懒加载图片