//A1 30*35 A2 35*15 A3 15*5 A4 5*10 A5 10*20 A6 20*25
//p[0-6]={30,35,15,5,10,20,25}
///*
#include<stdio.h>
#include<stdlib.h>
#define L 7
int RecurMatrixChain(int i,int j,int **s,int *p);//递归求最优解
void Traceback(int i,int j,int **s);//构造最优解
int main()
{
int i;
int p[]={30,35,15,5,10,20,25};
int **s=(int **)malloc(L);
for( i=0;i<L;i++)
{
s[i] = (int *)malloc(L);
}
printf("矩阵的最少计算次数为:%d\n",RecurMatrixChain(1,6,s,p));
printf("矩阵最优计算次序为:");
Traceback(1,6,s);
return 0;
}
//*/
int RecurMatrixChain(int i,int j,int **s,int *p)
{
int k;
int u;
if(i==j) return 0;
u= RecurMatrixChain(i,i,s,p)+RecurMatr