#include<stdio.h>
int p[101];
int m[101][101];
int MenmoizedMatrixChain(int n,int m[101][101])
{ int i,j;
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)m[i][j]=-1;
return LookupChain(1,n);
}
int LookupChain(int i,int j){
if(m[i][j]>0)return m[i][j];
if(i==j)return 0;
int u=LookupChain(i,i)+LookupChain(i+1,j)+p[i-1]*p[i]*p[j];
int k;
for(k=i+1;k<j;k++){
int t=LookupChain(i,k)+LookupChain(k+1,j)+p[i-1]*p[k]*p[j];
if(t<u){
u=t;
}
}
m[i][j]=u;
return u;
}
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载