![动态规划算法实验报告_第1页](http://file4.renrendoc.com/view/08a26d94fc3a7b2a40589d91268afe42/08a26d94fc3a7b2a40589d91268afe421.gif)
![动态规划算法实验报告_第2页](http://file4.renrendoc.com/view/08a26d94fc3a7b2a40589d91268afe42/08a26d94fc3a7b2a40589d91268afe422.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4/4动态规划算法实验报告动态规划算法实验报告
————————————————————————————————:————————————————————————————————日期:
实验标题
1、矩阵连乘
2、最长公共子序列3、最大子段和
4、凸多边形最优三角剖分
5、流水作业调度
6、0-1背包问题
7、最优二叉搜索树
实验目的掌握动态规划法的基本思想和算法设计的基本步骤。
实验内容与源码1、矩阵连乘
#include
usingnamespacestd;
constintsize=4;
//ra,ca和rb,cb分别表示矩阵A和B的行数和列数
voidmatriMultiply(inta[][4],intb[][4],intc[][4],intra,intca,intrb,intcb)
{
if(ca!=rb)cerr>p[0]>>p[1];
for(inti=2;i<=w;i++)
{
intm=p[i-1];
cout<>p[i-1]>>p[i];
if(p[i-1]!=m)
{
cout
#include
#defineN100
usingnamespacestd;
//str1存储字符串x,str2存储字符串y
charstr1[N],str2[N];
//lcs存储最长公共子序列
charlcs[N];
//c[i][j]存储str1[1...i]与str2[1...j]的最长公共子序列的长度intc[N][N];
//flag[i][j]==0为str1[i]==str2[j]
//flag[i][j]==1为c[i-1][j]>=s[i][j-1]
//flag[i][j]==-1为c[i-1][j]=c[i][j-1])
{
c[i][j]=c[i-1][j];
flag[i][j]=1;
}
else
{
c[i][j]=c[i][j-1];
flag[i][j]=-1;
}
}
returnc[m][n];
}
//求出最长公共子序列
char*getLCS(char*x,char*y,intlen,char*lcs){
inti=strlen(x);
intj=strlen(y);
while(i
j--;
}
elseif(flag[i][j]==1)
i--;
else
j--;
}
returnlcs;
}
intmain()
{
inti;
cout<<"请输入字符串x:">str1;
cout=left;i--)
{
lefts+=a[i];
if(lefts>s1)s1=lefts;
}
ints2=0;
intrights=0;
for(inti=center+1;is2)s2=rights;
}
sum=s1+s2;//前后子段和相加
//判断最大子段和
if(sum>leftsum)sum=leftsum;
if(sum>rightsum)sum=rightsum;
}
returnsum;
}
intMaxSum(int*a,intn)
{
returnMaxSubSum(a,1,n-1);
}
intmain()
{
inta[8]={2,-3,-5,4,1,7,1,-5};
coutn;
Jobtype*d=newJobtype[N];
a=newint[N];
b=newint[N];
c=newint[N];
cout>d[i].index>>d[i].key;
}
cout=w[1])
m[1][c]=max(m[1][c],m[2][c-w[1]]+v[1]);
}
//找出最优解,0表示不能装,1表示能装
voidtraceback(int**m,intn,intc,int*x,int*w)
{
for(inti=1;i>w[i];
cout
#include::max();//double的最大值
//a[i]为结点i被访问的概率
//b[i]为“虚结点”i被访问的概率
//m[i][j]用来存放子树(i,j)的期望代价
//w[i][j]用来存放子树(i,j)的所有结点(包括虚结点)的a,b概率之和
//s[i][j]用来跟踪root的
voidOptimalBinarySearchTree(double*a,double*b,intn)
{
ints[N][N];
doublem[N][N];
doublew[N][N];
inti,j,l,r;
for(i=1;in;
cout<>a[i];
sum+=a[i];
}
cout>b[i];
sum+=b[i];
}
if(abs(sum-1)>0.01)
{
cout<<"输入的概率和不为1,请重新输入"<<endl;
}
cout<<"最优二叉查找树的期望搜索代价为:";
Opt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育培训机构评估居间合同
- 纺织品交易居间合同协议书
- 2025年度办公室日常保洁与节能照明设备供应服务合同
- 广告投放数据分析合同
- 产品包装设计技术指南
- 安全生产托管协议合同
- 工矿企业产品购销合同
- 厨房承包协议集锦
- 农业质量标准制定指南
- 能源行业能源供应链优化与智能仓储管理
- 吲哚菁绿血管造影检查知情同意书
- 最新婚姻家庭心理讲座主题讲座课件
- 无损检测超声波探伤检测方案
- 浙江省温州市地图矢量PPT模板(图文)
- DB32∕T 2948-2016 水利工程卷扬式启闭机检修技术规程
- 建筑施工图设计教程
- 高中化学必修一复习提纲
- 工程款支付报审表
- 同位角内错角同旁内角专项练习题有答案
- 管理信息系统数据流程图和业务流程图经典作品
- 常用抗凝药物的应用及护理PPT课件
评论
0/150
提交评论