问题:给定n个矩阵{A1,A2,...,An},其中Ai与Ai+1是可乘的,i=1,2,...,n-1,求矩阵相乘至少需要多少次数乘?
举例:A1 10100,A2 1005,A3 550,则A1A2*A3至少需要7500次数乘。
#include<iostream>
using namespace std;
#define MAX 50
#define inf 99999999
int p[MAX+1]; //存储各个矩阵的列数以及第一个矩阵的行数(作为第0个矩阵的列数)
int m[MAX][MAX]; //m[i][j]存储子问题的最优解
int s[MAX][MAX]; //s[i][j]存储子问题的最佳分割点
int n; //矩阵个数
void matrix()
{
int i,j,k;
for(i=0;i<n;i++)
m[i][i