`

矩阵链乘法

阅读更多

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]);
	}


}
分享到:
评论

相关推荐

    动态规划解决矩阵链乘法问题

    ### 动态规划解决矩阵链乘法问题 #### 一、问题背景与描述 矩阵链乘法问题是在一系列矩阵相乘的过程中寻找最佳的计算顺序,以达到最少的标量乘法次数。这个问题之所以存在,是因为矩阵乘法满足结合律但不满足交换...

    JUZHEN.rar_矩阵链乘法

    矩阵链乘法问题就是如何对矩阵乘积加括号,使得它们的乘法次数达到最少。 Input 输入的第一行为一个正整数N(1&lt;=N&lt;=200)。表示矩阵的个数。 输入的第二行包含N+1个整数,分别表示pi(0&lt;=i&lt;=N),其中...

    matrix-chain矩阵链乘法

    typedef struct { int pp[MAXSIZE]; int size; }pt;

    矩阵链乘法的动态规划算法

    矩阵链乘法是一种经典的动态规划问题,主要解决的是在计算一系列矩阵相乘时找到最优的乘法顺序,以达到计算代价最小化的目的。在实际应用中,矩阵乘法的计算量极大,因此优化乘法顺序对于提高计算效率至关重要。本...

    采用动态规划写的矩阵链乘法,呵呵呵

    采用动态规划写的矩阵链乘法,呵呵呵 欢迎大家来下载哈,呵呵呵呵呵

    矩阵链乘法问题.pdf

    矩阵链乘法问题.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-1矩阵链最优括号化方案

    算法导论第三版练习题15.2-2的C++实现方案

    动态规划求解矩阵链乘

    动态规划求解矩阵链乘

    实验八矩阵链.doc

    矩阵链乘法是一种优化矩阵乘法运算顺序的算法,它主要应用于降低计算多个矩阵相乘时所需的浮点运算次数。由于矩阵乘法满足结合律,即对于任何三个矩阵A、B和C,无论我们如何放置括号(A×(B×C))或((A×B)×C),最终...

    算法-矩阵乘法(信息学奥赛一本通-T1125)(包含源程序).rar

    5. 动态规划和矩阵链乘法:在某些问题中,矩阵乘法可以用来优化动态规划的状态转移。 总的来说,"算法-矩阵乘法(信息学奥赛一本通-T1125)(包含源程序).rar"资源为学习者提供了一个全面的学习平台,不仅有理论...

    mcm.zip_in

    在IT领域,矩阵链乘法(Matrix Chain Multiplication,简称MCM)是一个经典的算法问题,主要涉及到了数据结构和算法中的动态规划概念。这个题目提到的"mcm.zip_in"可能是一个包含C语言实现矩阵链乘法算法的压缩包...

    矩阵乘法动态规划算法实现

    但这里我们将关注更简单的动态规划方法,称为“矩阵链乘法”。 矩阵链乘法的主要步骤如下: 1. 计算矩阵的大小和代价:为每个矩阵分配一个大小(表示需要进行的乘法操作数),例如,对于A(m×n),大小为m*n。 2. ...

    找到乘以矩阵链的最快方法并执行此操作_julia_代码_下载

    此处应用的 矩阵链乘法算法(Cormen 等人在第 3 版算法简介中进行了描述 )找到了最佳乘法序列。 使用 Julia,很容易允许对矩阵类型进行专门化。例如,ArrayFire.jl包中给出的类型或矩阵矩阵(块矩阵)也应该可以...

    矩阵乘法在信息学中的应用ACM

    矩阵链乘法问题则是算法竞赛中的一个典型题目,涉及到最小化计算多个矩阵相乘的运算次数。通过动态规划,我们可以找到最优的括号配对方式,使得所需的乘法次数最少。 在信息学竞赛中,掌握矩阵乘法及其应用不仅能...

    矩阵乘法 ACM

    在ACM竞赛中,矩阵乘法相关的题目可能涉及矩阵链乘法(寻找最佳的乘法顺序以减少运算次数)、动态规划问题、图论问题(如最短路径问题的Floyd-Warshall算法)等。解这类题目时,理解矩阵乘法的基本性质、熟悉高效...

    算法导论上机报告 算法

    在本篇上机报告中,我们将深入探讨三个关键的算法概念:矩阵链乘法、最长公共子序列(LCS)以及最大子序列和。这些算法是计算机科学与信息技术领域中的重要组成部分,尤其在数据结构与算法分析方面具有深远影响。 ...

    MATCHAIN 矩阵求和的最少次数

    这可以通过动态规划方法来解决,通常称为矩阵链乘法(Matrix Chain Multiplication,简称MCM)。动态规划允许我们将问题分解为更小的子问题,并存储已解决的子问题结果,以避免重复计算,从而有效地找到最小乘法次数...

Global site tag (gtag.js) - Google Analytics