矩阵连乘
【代码】
#include
#include
#define N 100
int m[N][N]; //m[i][j]表示从第i个矩阵连乘到第j个矩阵的最小计算次数
int s[N][N]; //第i个矩阵连乘到第j个矩阵时在何处断开,用于构造最优解
int p[N]; //表示矩阵i为p[i-1]×p[i]
void MatrixChain(int n)
{
int i,j,k,t,r;
for(i=1;i<=n;i++)
m[i][i]=0;
for(r=2;r<=n;r++)
{
for(i=1;i<=n-r+1;i++)
{
j=i+r-1;
m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
s[i][j]=i;
for(k=i+1;k