用动态规划法解决最长公共子序列问题

用动态规划法解决最长公共子序列问题

ID:46825194

大小:112.51 KB

页数:6页

时间:2019-11-28

用动态规划法解决最长公共子序列问题_第1页
用动态规划法解决最长公共子序列问题_第2页
用动态规划法解决最长公共子序列问题_第3页
用动态规划法解决最长公共子序列问题_第4页
用动态规划法解决最长公共子序列问题_第5页
资源描述:

《用动态规划法解决最长公共子序列问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、动态规划解最长子序列一、课程设计目的掌握动态规划法的原理,并能够按其原理编程实现求两个序列数据的最长公共子系列,以加深对其的理解。二、课程设计内容1、用动态规划法解决最长子序列问题2、交互输入两个序列数据3、输出两个序列的最长公共子序列三、概要设计四、详细设计与实现#include"iostream.h"#include"iomanip.h"#definemax100voidLCSLength(intm,intn,char*x,char*y,char*b){inti,j,k;intc[max][max];for(i=1;i<=m;i

2、++){c[i][0]=0;}for(i=1;i<=n;i++){c[0][i]=0;}for(i=1;i<=m;i++){for(j=1;j<=n;j++){if(x[i-1]==y[j-1]){c[i][j]=c[i-1][j-1]+1;k=i*(n+1)+j;b[k]='\';}elseif(c[i-1][j]>=c[i][j-1]){c[i][j]=c[i-1][j];k=i*(n+1)+j;b[k]='

3、';}else{c[i][j]=c[i][j-1];k=i*(n+1)+j;b[k]='-';}}}}voidLCS(

4、inti,intj,char*x,char*b,intwidth){if(i==0

5、

6、j==0)return;intk=i*(width+1)+j;if(b[k]=='\'){LCS(i-1,j-1,x,b,width);cout<

7、'){LCS(i-1,j,x,b,width);}else{LCS(i,j-1,x,b,width);}}voidmain(){charx[max]={'a','b','c','b','d','a','b'};chary[max]={'b','d'

8、,'c','a','b','a'};intm=7;intn=6;charb[max]={0};LCSLength(m,n,x,y,b);LCS(m,n,x,b,n);cout<

9、,且 zk != xm , 则 Z 是 X[m-1] 和 Y 的最长公共子序列3、若 xm != yn , 且 zk != yn , 则 Z 是 Y[n-1] 和 X 的最长公共子序列由性质导出子问题的递归结构当 i = 0 , j = 0 时 , c[i][j] = 0当 i , j > 0 ; xi = yi 时 , c[i][j] = c[i-1][j-1] + 1当 i , j > 0 ; xi != yi 时 , c[i][j] = max { c[i][j-1] , c[i-1][j] }#include

10、m.h>#definemax(a,b)a>b?a:b#defineM100voiddisplay(int&n,int&C,intw[M],intv[M]){inti;cout<<"请输入物品种数n:";cin>>n;cout<>C;cout<>w[i];cout<<"请输入各物品其价值v:"<

11、cin>>v[i];};intknapsack(int&n,int&C,intw[M],intv[M],intV[M][M]){inti,j;for(i=0;i<=n;i++)for(j=0;j<=C;j++){if(i==0

12、

13、j==0)V[i][j]=0;elseif(w[i]>j)V[i][j]=V[i-1][j];elseif(w[i]<=j)V[i][j]=max(V[i-1][j],V[i-1][j-w[i]]+v[i]);}returnV[n][C];};voidtraceback(intn,intC,intw[M],

14、intx[M],intV[M][M]){for(inti=1;i<=n;i++){if(V[i][C]==V[i-1][C])x[i]=0;else{x[i]=1;C=C-w[i];}}//x[n]=(V[n][C]>0)?1:0;}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。