[kuangbin带你飞]专题二十二 区间DP-E-POJ - 1651
2024-10-18 22:24:53
区间DP模板题
做区间DP的题目的时候,我们考虑DP[i][j]的含义是什么?
由题意大概是这样的,我们可以从n个数中每次选一个我们以前没选过的数字拿走,需要消耗a[i]*a[i+1]*a[i-1]的体力。
头和尾不能拿走。问最小消耗的体力是多少?
我们这样考虑。
一般DP[1][n]是答案的话,它代表是拿走了2-n-1,并且两头还有未合并的1,n
那么我们很容易写出转移方程:
DP[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[k]*a[k-1]*a[k+1])
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<algorithm>
#define LL long long
using namespace std;
LL dp[][];
LL a[];
const int INF = 0x3f3f3f3f;
int main(){
int n;
while(~scanf("%d",&n)){
memset(dp,,sizeof(dp));
for (int i=;i<=n;i++){
scanf("%lld",&a[i]);
}
for (int len=;len<=n;len++){
for (int i=;i+len-<=n;i++){
int j=i+len-;
dp[i][j]=INF;
for (int k=i+;k+<=j;k++){
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]+a[i]*a[j]*a[k]);
}
}
}
printf("%lld\n",dp[][n]);
}
return ;
}
最新文章
- Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string &#39;android-23&#39; 等错误
- CocoaPods for Xcode
- Bootstrap_Javascript
- 在项目中引用GreenDroid库
- hdu 2044 一只小蜜蜂
- java连接access数据库
- iOS UIKit:TableView之表格创建(1)
- C题 - A+B for Input-Output Practice (II)
- 用 chrome 调试 node.js 代码
- Python内置函数(52)——range
- Java利用cors实现跨域请求
- 单目视觉里程计 mono vo
- 【转】Tesla autopilot 引起致命车祸
- Criteria 使用指南
- GridColumn (Column Layout and Auto Width)
- Cannot find module &#39;webpack/lib/node/NodeTemplatePlugin&#39; 问题原因和解决方案
- LTIB for ubuntu12.04
- cesium.js 设置缩放最大最小限制
- Python20-Day02
- 移动应用安全开发指南(Android)--数据验证
热门文章
- Linux常用命令速查-用户管理
- python --- 基数排序算法
- 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1
- 使用 ASP.NET Core MVC 创建 Web API(一)
- 用SpringCloud进行微服务架构演进
- 浅谈Linux基本命令
- JAVA WEB快速入门之从编写一个基于SpringBoot+Mybatis快速创建的REST API项目了解SpringBoot、SpringMVC REST API、Mybatis等相关知识
- Struts2笔记_拦截器
- mysql触发器new和old
- Java 8中Stream API学习笔记