小白算法练习 区间dp 乘法游戏

原创 2018年04月15日 10:47:21

乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不允许拿第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。

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

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

样例输入

6
10 1 50 50 20 5

样例输出

3650

#include<iostream>
#include<cstring>
using namespace std;
const int maxm=1111;
int d[maxm],N;
long long dp[maxm][maxm];
const int INF=0x3f3f3f;
void dypro()
{
    for(int k=3;k<=N;k++)
    {
        for(int i=1;i<=N;i++)
        {
            int j=i+k-1;
            if(j>N) break;
            dp[i][j]=INF;
            if(k==3)
            {
                dp[i][j]=d[i]*d[i+1]*d[i+2];
            } 
			else
			{ 	        
    	        for(int l=i+1;l<j;l++)
        	    {
            	    dp[i][j]=min(dp[i][j],dp[i][l]+dp[l][j]+d[l]*d[i]*d[j]);
       		    }
       		}
        }
    }
}
int main()
{
    memset(dp,0,sizeof(dp));
    cin>>N;
    for(int i=1;i<=N;i++)
    {
        cin>>d[i];
    }
    dypro();
    cout<<dp[1][N]<<'\n';
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36336522/article/details/79946805

tyvjP1014乘法游戏(区间dp)

题目链接:http://www.tyvj.cn/p/1014 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 太原成成中学第2次模拟赛 ...
  • jn_8316
  • jn_8316
  • 2016-08-09 18:19:17
  • 260

乘法游戏(tyvj P1014)区间dp

区间dp,dp[i][j] = min ( 左右两边去掉的数计算的和 + 当前数a[k]*a[i]*a[j] ) #include #include #include #include #i...
  • woyuhuaijin
  • woyuhuaijin
  • 2016-05-21 20:18:37
  • 511

【tyvj1041】乘法游戏

即使踏着荆棘,也不觉悲苦;即使有泪可落,亦不是悲凉。
  • Clove_unique
  • Clove_unique
  • 2016-01-29 21:16:44
  • 681

poj1651Multiplication Puzzle(取数,区间DP)

Description The multiplication puzzle is played with a row of cards, each containing a single pos...
  • u010372095
  • u010372095
  • 2014-07-21 20:42:13
  • 860

【区间DP】乘法游戏

☆乘法游戏                 背景 Background   ...
  • jie_guale
  • jie_guale
  • 2011-10-30 10:30:09
  • 328

Codevs1966 乘法游戏 区间dp

Codevs1966 乘法游戏跟石子归并差不……多…? 好像所有的区间dp都差不多,然而我还是不会做。状态转移方程:dp[i][j] = min(dp[i][j], dp[i][k]+dp[k][j...
  • LOI_QER
  • LOI_QER
  • 2016-11-01 07:51:58
  • 148

lanqiao 小白算法练习 合并石子 区间dp

问题描述   在一条直线上有n堆石子,每堆有一定的数量,每次可以将两堆相邻的石子合并,合并后放在两堆的中间位置,合并的费用为两堆石子的总数。求把所有石子合并成一堆的最小花费。 输入格式   输入...
  • qq_36336522
  • qq_36336522
  • 2017-07-29 17:04:57
  • 107

高精度-codevs-3117高精度练习之乘法

3117 高精度练习之乘法 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 给出两个正整数A和B,计算A*...
  • Roy_Yuan
  • Roy_Yuan
  • 2015-06-18 11:13:31
  • 450

计蒜客 213 乘法游戏

链接:http://nanti.jisuanke.com/t/213 乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是用它的数字乘以它左边和右边的数,所以不...
  • jdliyao
  • jdliyao
  • 2016-05-11 00:06:37
  • 970

【动态规划】【tyvj】乘法游戏

背景 Background  太原成成中学第2次模拟赛 第四道       描述 Description  乘法游戏是在一行牌上进行的。每一张牌包括了一个正整数。在每一个移动中,玩家拿出一张牌,得分是...
  • liveas
  • liveas
  • 2010-08-08 16:42:00
  • 1012
收藏助手
不良信息举报
您举报文章:小白算法练习 区间dp 乘法游戏
举报原因:
原因补充:

(最多只允许输入30个字)