http://poj.org/problem?id=1651

题目大意:同“乘法游戏”,这里将乘法游戏的题面复制过来。

乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第1张和最后1张牌。最后一次移动后,这里只剩下两张牌。你的目标是使得分的和最小。

———————————————————————————————————

太水了……

(其实是以前做过,所以觉得水……)

dp[i][j]表示i~j区间做乘法游戏得到的最小值。

显然长度为3的时候别无选择只能拿中间的。

那么剩下的情况可以为:枚举最后拿的数,递归左右边,最后显然乘起来的就是左右边界和最后的这一个数。

#include<cstdio>
using namespace std;
int a[];
int dp[][]={};
const int INF=;
int main(){
int n;
scanf("%d",&n);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
dp[i][i+]=;
}
for(int i=;i<=n-;i++){
dp[i][i+]=a[i]*a[i+]*a[i+];
}
for(int i=;i<=n-;i++){
for(int j=;j<=n-i;j++){
dp[j][j+i]=INF;
for(int k=j+;k<=j+i-;k++){
if(dp[j][j+i]>dp[j][k]+dp[k][j+i]+a[j]*a[k]*a[j+i])
dp[j][j+i]=dp[j][k]+dp[k][j+i]+a[j]*a[k]*a[j+i];
}
}
}
printf("%d\n",dp[][n]);
return ;
}

最新文章

  1. WPF资源使用
  2. ASP.NET vNext总结:EntityFramework7
  3. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎
  4. EF 外键问题
  5. Android调用浏览器打开网址遇到的问题
  6. requirejs模块化框架用法分享
  7. Linux查看所有用户用什么命令1
  8. python IOError: invalid mode (&#39;r&#39;) or filename
  9. mysql 中tinytext、text、mediumtext和longtext详解
  10. Java的内存泄漏
  11. @PostConstruct 注解
  12. 前端自动化测试神器-Katalon进阶用法
  13. unity A*寻路 (二)读取NavMesh数据
  14. EasyUI 分页 偶遇 问题
  15. 深入-FastReport TfrxReport组件使用
  16. spring 标签
  17. ES6基础语法
  18. SetupFactory 制作安装包
  19. January 11th, 2018 Week 02nd Thursday
  20. 批量读取文件matlab

热门文章

  1. git 操作几个命令
  2. 前端开发工程师 - 01.页面制作 - 第3章.HTML
  3. 【第五章】MySQL数据库的安全机制
  4. HADOOP docker(八):hadoop本地库
  5. nodejs笔记--Events篇(二)
  6. ChromeSwitchySharp代理设置步骤
  7. Java 集合框架之Collection
  8. PAT 甲级 1101 Quick Sort
  9. 【Quartz.net】- Cron表达式
  10. sublime Text3 如何自动排版代码