洛谷 1063 dp 区间dp
2024-08-27 06:57:26
#洛谷 1063 dp 区间dp
感觉做完这道提高组T1的题之后,受到了深深的碾压,,最近各种不在状态。。
初看这道题,不难发现它具有区间可并性,即(i, j)的最大值可以由(i, k) 与 (k+1, j)得到。考虑使用区间dp
题目中项链为环形,所以在2 * n的区间上进行操作
设dp[i][j],表示区间(i, j) 的最大值 转移为
dp[i][j] = max(dp[i][j], dp[i][k] + dp[k+1][j] + pre[i] * succ[k] * succ[j]);
老久没写区间dp题目了,各种手生,开了3倍的空间,在枚举i的时候只枚举了一个n的区间,导致多次错解
丑哭的代码如下:
#include <cstdio>
#include <cstring>
#include <algorithm>
const int maxn = 800 + 10;
int dp[maxn][maxn];
int pre[maxn], succ[maxn];
int n;
int main () {
freopen("energy.in", "r", stdin);
freopen("energy.out", "w", stdout);
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
scanf("%d", &pre[i]);
succ[i-1] = pre[i];
}
succ[n] = pre[1];
memcpy(&pre[n + 1], &pre[1], sizeof(int) * n);
memcpy(&succ[n + 1], &succ[1], sizeof(int) * n);
memcpy(&pre[2 * n + 1], &pre[1], sizeof(int) * n);
memcpy(&succ[2 * n + 1], &succ[1], sizeof(int) * n);
// for (int i = 1; i <= 3 * n; i++) printf("pre[%d] = %d\n", i, pre[i]);
// for (int i = 1; i <= 3 * n; i++) printf("succ[%d] = %d\n", i, succ[i]);
for (int j = 1; j < n; j++) {
for (int i = n + 1; i <= 3 * n; i++) {
for (int k = i; k < i + j; k++)
dp[i][i+j] = std :: max(dp[i][i+j], dp[i][k] + dp[k + 1][i + j] + pre[i] * succ[k] * succ[i + j]);
}
}
//for (int i = n + 1; i <= 2 * n; i++)
// for (int j = i; j <= i + n - 1; j++) {
// printf("dp[%d][%d] = %d\n", i, j, dp[i][j]);
// }
int ans = 0;
for (int i = n + 1; i <= 3 * n; i++) {
ans = std :: max(ans, dp[i][i + n - 1]);
}
printf("%d", ans);
return 0;
}
最新文章
- Yii2的View中JS代码添加
- android 系统定制的小技巧(网络收集)
- OpenSource.com 评出 2014 年十佳开源软件
- PHP-5.5.10+Apache httpd-2.4.9在Windows系统下配置实战
- EF分页问题探讨之 OrderBy
- 前端自动化构建工具-yoman浅谈
- poj 3294
- Mac系统下XAMPP的简单使用
- jquery 上传图片转为base64,ajax提交到后台
- 导出和导入Docker容器
- 网络小白之WAN与LAN的区别
- shiroUtil工具类
- [Swift]LeetCode557. 反转字符串中的单词 III | Reverse Words in a String III
- sprigmvc 传值jsp页面
- 步步为营-84-数字转化为金额的Js+enter键取消页面刷新
- 一个可爱 &; 小清新的加载等待Android控件
- 进程守护为什么选择pm2
- (转)Android学习路线总结,绝对干货
- mongodb-添加或删除字段
- 关于Linux用户名
热门文章
- JavaScript(DOM编程三)
- 环境搭建Selenium2+Eclipse+Java+TestNG_(一)
- 最短路&;查分约束
- 0108MySQL集群搭建详解(三种结点分离)
- spring boot的几种配置类型
- T4系列文章之1:认识T4
- 浅谈cocos2dx(17) 中单例管理模式
- hdoj--2120--Ice_cream&#39;s world I(并查集判断环)
- 7.matlab字符串分析
- Combo Select – jQuery可搜索下拉框插件