记录编号 359421 评测结果 AAAAA
题目名称 最优矩阵链乘 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 0.003 s
提交时间 2016-12-22 17:31:05 内存使用 0.33 MiB
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <list>
#include <queue>
using namespace std;
#define MAXN 104
int dp[MAXN][MAXN];
int a[MAXN];
int main()
{
    freopen("goodmatrix.in", "r", stdin);
    freopen("goodmatrix.out", "w", stdout);
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n+1; i++)
        scanf("%d", a+i);
    for(int i = 1; i <= n; i++)dp[i][i+1] = a[i]*a[i+1]*a[i+2];
    for(int i = 3; i <= n; i++)
    {
        for(int l = 1; l+i-1 <= n; l++)
        {
            int r = l+i-1;
            dp[l][r] = 0x7fffffff;
            for(int p = l; p < r; p++)
                dp[l][r] = min(dp[l][r], dp[l][p]+dp[p+1][r]+a[l]*a[p+1]*a[r+1]);
        }
    }
    printf("%d\n", dp[1][n]);
    return 0;
}