最优矩阵链乘

Posted DearDongchen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最优矩阵链乘相关的知识,希望对你有一定的参考价值。

poj1651

按区间长度递增的顺序递推...

技术分享图片
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn = 105, inf = 0x3f3f3f3f;
int a[maxn], dp[maxn][maxn];
int main(){
    int n;
    scanf("%d", &n);
    for(int i = 0; i < n; i++)
        scanf("%d", &a[i]);
    n--;
    for(int len = 0; len <= n-1; len++){
        for(int i = 1; i+len <= n; i++){
            int j = i+len;
            if(i == j)
                dp[i][j] = 0;
            else{
                dp[i][j] = inf;
                for(int k = i; k <= j; k++){
                    dp[i][j] = min(dp[i][j], dp[i][k]+dp[k+1][j]+a[i-1]*a[k]*a[j]);
                }
            }
        }
    }
    printf("%d\n", dp[1][n]);
    return 0;
}
/*
 6
 10 1 50 50 20 5
*/
View Code

 

以上是关于最优矩阵链乘的主要内容,如果未能解决你的问题,请参考以下文章

最优矩阵链乘

dp-最优矩阵链乘

动态规划—矩阵链乘法

矩阵链乘(解析表达式)

矩阵链乘

矩阵链乘问题