动态规划矩阵连乘问题

我学的超级烂,写了下面一个程序,想实现矩阵连乘的动态规划问题,引用的例题是:A1A2A3A4A5A6这六个矩阵连乘。A1为30*35的矩阵,A2为35*15,A3为15*... 我学的超级烂,写了下面一个程序,想实现矩阵连乘的动态规划问题,引用的例题是:A1A2A3A4A5A6 这六个矩阵连乘。A1为30*35的矩阵,A2为35*15,A3为15*5,A4为5*10,A5为10*20 ,A6为20*25
我想用M[6][6]来记录最少数乘次数,用S[6][6]来记录最优断点位置。
这个程序肯定漏洞百出,哪位高手不要见笑,替小弟调试一下,并注明我哪里出错了,小弟不胜感激。谢谢。
#include<iostream>
using namespace std;

void matrixChain(int &p,int [][]m,int [][]s)
{
int n=p.length-1;
for(int i=1;i<=n;i++) m[i][i]=0;
for(int r=2;r<=n;r++)
for(int i=1;i<n-r+1;i++)
{
int j=i+r-1;
int m[i][j]=m[i+1][j]+p[i-1]*p[i]*p[j];
int s[i][j]=i;
for(int k=i+1;k<j;k++)
{
int t=m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j];
if(t<m[i][j])
{
m[i][j]=t;
s[i][j]=k;
}
}
}
}
void main()
{
int P[]={35,15,5,10,20};
int M[6][6];
int S[6][6];
matrixChain(int &P[],int M[6][6],int S[6][6]);
for(int i=1;i<7;i++)
for(int j=1;j<7;j++)
{
cout<<M[i][j]<<" "<<S[i][j]<<endl;
}
}
展开
 我来答
xulukan
2007-10-10 · TA获得超过1917个赞
知道大有可为答主
回答量:1225
采纳率:100%
帮助的人:0
展开全部
可怜,100分还没人理你,给我吧。
动态规划问题可以有tD/eD的形式,n^t为问题的大小,n^e为问题所依赖的子问题的大小
1D/1D型,最长上升子序列
2D/0D型,最长公共子序列
2D/1D型,多源最短路径
2D/2D型,双背包问题
当然可以有3D/1D或者更高的。

动态规划题目千变万化,主要是要学会思考方法,要能看到题目很快找出题目中的状态,找准状态后就基本没有难度了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式