矩阵连乘问题(动态规划)

#include
#include
using namespace std;
const int N=1010,INF=INT_MAX;
int p[N],m[N][N],s[N][N];
int n;
构造最优解 
//void Traceback(int i,int j,int s[][N]){
//    if(i==j)       //回归条件
//    {
//        cout<<"A"<>n;
	
	//p数组 是用来存储矩阵的规模的
	//对于矩阵Ai,p[i-1]表示矩阵的行,p[i]表示矩阵的列 
	//因为左矩阵的列等于右矩阵的行,所以只需输入n+1个数
	//例如:A3的规模是p[2]*p[3],A4的规模是p[3]*p[4]
	 
	for(int i=0;i>p[i];
	
	for(int i=1;i<=n;i++) m[i][i]=0;
	
	for(int l=2;l<=n;l++)
		for(int i=1;i<=n-l+1;i++)
		{
			int j=i+l-1;
			m[i][j]=INF;
			for(int k=i;k

Traceback的方法借鉴了:

计算机算法分析与设计(4)---矩阵连乘问题(含C++代码)_矩阵链式相乘算法代码-CSDN博客

你可能感兴趣的:(矩阵,动态规划,线性代数)