问题描述:
设要计算矩阵连乘积A0,A1,A2,A3,A4,A5,其中各矩阵的维数分别为:
A0:30*15
A1:35*15
A2:15*5
A3:5*10
A4:10*20
A5:20*25
动态规划算法:我们首先求得1个矩阵相乘的最优划分次数,当然这个最优划分下相乘次数都是0,因为矩阵要相乘要有两个,所以我们要从两个矩阵相乘开始到达全部矩阵相乘;
#include<stdio.h>
#define n 6
void trace(int s[n][n],int i,int j)
{
if(i==j)
return;
trace(s,i,s[i][j]);
trace(s,s[i][j]+1,j);
printf("A%d*A%d\n",s[i][j],s[i][j]+1);
}
void main()
{
int p[7]={30,35,15,5,10,20,25};
int m[n][n],s[n][n],j,i,k,l,temp;
for(i=0;i<n;i+&#