1966 乘法游戏

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
题目描述 Description

乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第1张和最后1张牌。最后一次移动后,这里只剩下两张牌。
  你的目标是使得分的和最小。
  例如,如果数是10 1 50 20 5,依次拿1、20、50,总分是            10*1*50+50*20*5+10*50*5=8000
  而拿50、20、1,总分是1*50*20+1*20*5+10*1*5=1150。

输入描述 Input Description

输入文件的第一行包括牌数(3<=n<=100),第二行包括N个1-100的整数,用空格分开。

输出描述 Output Description

输出文件只有一个数字:最小得分

样例输入 Sample Input

6
10 1 50 50 20 5

样例输出 Sample Output

3650

数据范围及提示 Data Size & Hint
代码:
/* 错误原因 :这个DP方程说明,每次取数只能取一个区间的数,而题目没有这个要求
for(int i=n-2;i>=2;--i)
for(int j=i+1;j<=n-1;++j)
f[i][j]=min(min(f[i][j],f[i+1][j]+a[i]*a[i-1]*a[j+1]),f[i][j-1]+a[i-1]*a[j]*a[j+1]);*/
/*正确解答:f[i][j]表示合并i--j这个区间不包括i和j的最小数
f[i][j]=min(f[i][j],f[i][k]+f[k][j]+num[i]*num[j]*num[k]);因为取数可以跳着取,那么就要再加一重循环,循环这个区间内所有的取数可能*/
/*这个题目是区间型DP,而不是序列性DP*/
#include<cstdio>
#include<iostream>
using namespace std;
#define N 101
#include<cstring>
int f[N][N],n;
int num[N];
void input()
{
scanf("%d",&n);
for(int i=;i<=n;++i)
scanf("%d",&num[i]);
memset(f,,sizeof(f));
for(int i=;i<=n;++i)
f[i][i+]=;/*注意这个初始化,合并两个数的区间,不行的*/
}
void dp()
{
for(int i=n-;i>=;--i)
for(int j=i+;j<=n;++j)
for(int k=i+;k<=j-;++k)
f[i][j]=min(f[i][j],f[i][k]+f[k][j]+num[i]*num[j]*num[k]);
}
int main()
{
input();
dp();
cout<<f[][n]<<endl;
return ;
}

codevs 1966 乘法游戏的更多相关文章

  1. tyvj1014 乘法游戏

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

  2. 求次短路 codevs 1269 匈牙利游戏

    codevs 1269 匈牙利游戏 2012年CCC加拿大高中生信息学奥赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题目描述 Descriptio ...

  3. TYVJ 1014 乘法游戏

    做题记录:2016-08-15 16:10:14 背景 太原成成中学第2次模拟赛 第四道 描述 乘法游戏是在一行牌上进行的.每一张牌包括了一个正整数.在每一个移动中,玩家拿出一张牌,得分是用它的数字乘 ...

  4. codevs 2853 方格游戏--棋盘dp

    方格游戏:http://codevs.cn/problem/2853/ 这和传纸条和noip方格取数这两个题有一定的相似性,当第一眼看到的时候我们就会想到设计$dp[i][j][k][l]$(i,j表 ...

  5. Codevs 1229 数字游戏

    1229 数字游戏  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver     题目描述 Description Lele 最近上课的时候都很无聊,所以他发明了 ...

  6. codevs 1229 数字游戏(可重集的全排列)

    传送门 Description Lele 最近上课的时候都很无聊,所以他发明了一个数字游戏来打发时间.  这个游戏是这样的,首先,他拿出几张纸片,分别写上0到9之间的任意数字(可重复写某个数字),然后 ...

  7. 洛谷 P2670 扫雷游戏==Codevs 5129 扫雷游戏

    题目描述 扫雷游戏是一款十分经典的单机小游戏.在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格).玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有 ...

  8. CODEVS 3285 转圈游戏

    [题目描述] n 个小伙伴(编号从 0 到 n-1)围坐一圈玩游戏.按照顺时针方向给 n 个位置编号,从0 到 n-1.最初,第 0 号小伙伴在第 0 号位置,第 1 号小伙伴在第 1 号位置,……, ...

  9. Codevs 1198 国王游戏 2012年NOIP全国联赛提高组

    1198 国王游戏 2012年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 恰逢 H 国国庆,国王邀 ...

随机推荐

  1. hdfs文件上传机制与namenode元数据管理机制

    1.hdfs文件上传机制 文件上传过程:   1.客户端想NameNode申请上传文件, 2.NameNode返回此次上传的分配DataNode情况给客户端 3.客户端开始依向dataName上传对应 ...

  2. ThinkSnS v4后台任意文件下载漏洞

    漏洞文件: /apps/admin/Lib/Action/UpgradeAction.class.php 主要问题还是出现在了180行直接将远程获取到的图片直接保存. 文中可见并没有做任何的对$dow ...

  3. HighGUI图形图像界面初步——鼠标操作

    OpenCV中的鼠标操作和滑动条的消息映射方式很类似,都是通过一个中介函数配合一个回调函数来实现的,创建和指定滑动条回调函数为createTrackbar, 而指定鼠标操作消息回调函数的函数为setM ...

  4. Hierarchical Attention Based Semi-supervised Network Representation Learning

    Hierarchical Attention Based Semi-supervised Network Representation Learning 1. 任务 给定:节点信息网络 目标:为每个节 ...

  5. 21:序列化django对象

    django的序列化框架提供了一个把django对象转换成其他格式的机制,通常这些其他的格式都是基于文本的并且用于通过一个管道发送django对象,但一个序列器是可能处理任何一个格式的(基于文本或者不 ...

  6. linux命令(5):netstat命令

    网络监控:netstat –in [显示所有配置接口的状态] 查看端口状态:netstat -anlp | grep 8080 [显示8080端口列出的监听状态] 查看某个进程软件名:netstat ...

  7. JAVA二叉树的创建以及各种功能的实现

    直接上代码了,代码说得很清楚了 package BTree; public class BTree { private Node root; private class Node { private ...

  8. eclipse+cmake+c++11+ros

    eclipse+cmake: https://www.vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial eclipse+c++11: https://wiki.ecli ...

  9. Linux各发行版本及其软件包管理方法

    Linux发行版本有很多,按照使用领域分为桌面系统领域和服务器领域.下面简要介绍如下: 1.Red Hat和Fedora:redhat最早发行的个人版本的Linux,自从Red Hat 9.0版本发布 ...

  10. 错误:Eclipse老是出现 updating error reports database

    Eclipse 火星版(Mars)一直出现 updating error reports database. Window--->Preferences--->General---> ...