http://acm.xmu.edu.cn/JudgeOnline/problem.php?id=1029
#include <stdio.h>
#include <memory.h>
#include <string.h>
unsigned int result[200][200],path[200];
void connie(int data[],int n)
{
memset(result,-1,sizeof(int)*200*200);
memset(path,0,sizeof(int)*200);
int i,j,k;
unsigned int temp;
for(i=0;i<n;i++)result[i][i]=0;
for(i=2;i<=n;i++)
{
for(j=0;j<n-i+1;j++)
{
for(k=j;k<j+i-1;k++)
{
temp=result[j][k]+result[k+1][j+i-1]+data[j]*data[k+1]*data[j+i];
if(temp<result[j][j+i-1])
result[j][j+i-1]=temp;
}
}
}
}
int main()
{
int n,data[201];
int i,j,k;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<=n;i++)
scanf("%d",data+i);
connie(data,n);
printf("%d\n",result[0][n-1]);
}
}
分享到:
相关推荐
### 动态规划解决矩阵链乘法问题 #### 一、问题背景与描述 矩阵链乘法问题是在一系列矩阵相乘的过程中寻找最佳的计算顺序,以达到最少的标量乘法次数。这个问题之所以存在,是因为矩阵乘法满足结合律但不满足交换...
矩阵链乘法问题就是如何对矩阵乘积加括号,使得它们的乘法次数达到最少。 Input 输入的第一行为一个正整数N(1<=N<=200)。表示矩阵的个数。 输入的第二行包含N+1个整数,分别表示pi(0<=i<=N),其中...
typedef struct { int pp[MAXSIZE]; int size; }pt;
矩阵链乘法是一种经典的动态规划问题,主要解决的是在计算一系列矩阵相乘时找到最优的乘法顺序,以达到计算代价最小化的目的。在实际应用中,矩阵乘法的计算量极大,因此优化乘法顺序对于提高计算效率至关重要。本...
采用动态规划写的矩阵链乘法,呵呵呵 欢迎大家来下载哈,呵呵呵呵呵
矩阵链乘法问题.pdf
/*动态规划矩阵链乘*/ typedef struct { int m[MAX][MAX]; int s[MAX][MAX]; }res; void InitP(int* p,int length) { int i; printf("\n初始化序列p,请输入p的维数\n"); for (i=0;i;i++) { printf("p[%d...
用C++实现的矩阵链相乘算法,并包含大量的注释,对理解程序很有帮助
算法导论第三版练习题15.2-2的C++实现方案
动态规划求解矩阵链乘
矩阵链乘法是一种优化矩阵乘法运算顺序的算法,它主要应用于降低计算多个矩阵相乘时所需的浮点运算次数。由于矩阵乘法满足结合律,即对于任何三个矩阵A、B和C,无论我们如何放置括号(A×(B×C))或((A×B)×C),最终...
5. 动态规划和矩阵链乘法:在某些问题中,矩阵乘法可以用来优化动态规划的状态转移。 总的来说,"算法-矩阵乘法(信息学奥赛一本通-T1125)(包含源程序).rar"资源为学习者提供了一个全面的学习平台,不仅有理论...
在IT领域,矩阵链乘法(Matrix Chain Multiplication,简称MCM)是一个经典的算法问题,主要涉及到了数据结构和算法中的动态规划概念。这个题目提到的"mcm.zip_in"可能是一个包含C语言实现矩阵链乘法算法的压缩包...
但这里我们将关注更简单的动态规划方法,称为“矩阵链乘法”。 矩阵链乘法的主要步骤如下: 1. 计算矩阵的大小和代价:为每个矩阵分配一个大小(表示需要进行的乘法操作数),例如,对于A(m×n),大小为m*n。 2. ...
此处应用的 矩阵链乘法算法(Cormen 等人在第 3 版算法简介中进行了描述 )找到了最佳乘法序列。 使用 Julia,很容易允许对矩阵类型进行专门化。例如,ArrayFire.jl包中给出的类型或矩阵矩阵(块矩阵)也应该可以...
矩阵链乘法问题则是算法竞赛中的一个典型题目,涉及到最小化计算多个矩阵相乘的运算次数。通过动态规划,我们可以找到最优的括号配对方式,使得所需的乘法次数最少。 在信息学竞赛中,掌握矩阵乘法及其应用不仅能...
在ACM竞赛中,矩阵乘法相关的题目可能涉及矩阵链乘法(寻找最佳的乘法顺序以减少运算次数)、动态规划问题、图论问题(如最短路径问题的Floyd-Warshall算法)等。解这类题目时,理解矩阵乘法的基本性质、熟悉高效...
在本篇上机报告中,我们将深入探讨三个关键的算法概念:矩阵链乘法、最长公共子序列(LCS)以及最大子序列和。这些算法是计算机科学与信息技术领域中的重要组成部分,尤其在数据结构与算法分析方面具有深远影响。 ...
这可以通过动态规划方法来解决,通常称为矩阵链乘法(Matrix Chain Multiplication,简称MCM)。动态规划允许我们将问题分解为更小的子问题,并存储已解决的子问题结果,以避免重复计算,从而有效地找到最小乘法次数...