- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
0011算法笔记【动态规划】最长公共子序列问题(LCS).
问题描述:一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=?{ x1, x2,…, xm},则另一序列Z= {z1, z2,…, zk}是X的子序列是指存在一个严格递增的下标序列 {i1, i2,…, ik},使得对于所有j=1,2,…,k有 Xij=Zj。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定两个序列X和Y,当另一序列Z既是X的子序列又是Y的子序列时,称Z是序列X和Y的公共子序列。例如,若X=?{ A, B, C, B, D, A, B}和Y=?{B, D, C, A, B, A},则序列{B,C,A}是X和Y的一个公共子序列,序列{B,C,B,A}也是X和Y的一个公共子序列。而且,后者是X和Y的一个最长公共子序列,因为X和Y没有长度大于4的公共子序列。给定两个序列X=?{x1, x2, …, xm}和Y=?{y1, y2, … , yn},要求找出X和Y的一个最长公共子序列。?问题解析:设X= { A, B, C, B, D, A, B},Y= {B, D, C, A, B, A}。求X,Y的最长公共子序列最容易想到的方法是穷举法。对X的多有子序列,检查它是否也是Y的子序列,从而确定它是否为X和Y的公共子序列。由集合的性质知,元素为m的集合共有2^m个不同子序列,因此,穷举法需要指数级别的运算时间。进一步分解问题特性,最长公共子序列问题实际上具有最优子结构性质。 设序列X={x1,x2,……xm}和Y={y1,y2,……yn}的最长公共子序列为Z={z1,z2,……zk}。则有: (1)若xm=yn,则zk=xm=yn,且zk-1是Xm-1和Yn-1的最长公共子序列。 (2)若xm!=yn且zk!=xm,则Z是Xm-1和Y的最长公共子序列。 (3)若xm!=yn且zk!=yn,则Z是X和Yn-1的最长公共子序列。 其中,Xm-1={x1,x2……xm-1},Yn-1={y1,y2……yn-1},Zk-1={z1,z2……zk-1}。?递推关系:用c[i][j]记录序列Xi和Yj的最长公共子序列的长度。其中,Xi={x1,x2……xi},Yj={y1,y2……yj}。当i=0或j=0时,空序列是xi和yj的最长公共子序列。此时,c[i][j]=0;当i,j0,xi=yj时,c[i][j]=c[i-1][j-1]+1;当i,j0,xi!=yj时,c[i][j]=max{c[i][j-1],c[i-1][j]},由此建立递推关系如下:?构造最优解:由以上分析可知,要找出X={x1,x2,……xm}和Y={y1,y2,……yn}的最长公共子序列,可以按一下方式递归进行:当xm=yn时,找出xm-1和yn-1的最长公共子序列,然后在尾部加上xm(=yn)即可得X和Y的最长公共子序列。当Xm!=Yn时,必须解两个子问题,即找出Xm-1和Y的一个最长公共子序列及X和Yn-1的一个最长公共子序列。这两个公共子序列中较长者为X和Y的最长公共子序列。设数组b[i][j]记录c[i][j]的值由哪一个子问题的解得到的,从b[m][n]开始,依其值在数组b中有哪些信誉好的足球投注网站,当b[i][j]=1时,表示Xi和Yj的最长公共子序列是由Xi-1和Yj-1的最长公共子序列在尾部加上xi所得到的子序列。当b[i][j]=2时,表示Xi和Yj的最长公共子序列与Xi-1和Yj-1的最长公共子序列相同。当b[i][j]=3时,表示Xi和Yj的最长公共子序列与Xi和Yj-1的最长公共子序列相同。 代码如下:[cpp]?/liufeng_king/article/details/8500084 \o view plainview plain?/liufeng_king/article/details/8500084 \o copycopy//3d3-1?最长公共子序列问题?#include?stdafx.h?#include?iostream??using?namespace?std;?const?int?M?=?7;??const?int?N?=?6;???void?output(char?*s,int?n);??void?LCSLength(int?m,int?n,char?*x,char?*y,int?**c,int?**b);??void?LCS(int?i,int?j,char?*x,int?**b);???int?main()??{???//X={A,B,C,B,D,A,B}??//Y={B,D,C,A,B,A}??char?x[]?=?{?,A,B,C,B,D,A,B};???char?y[]?=?{?,B,D,C,A,B,A};????in
您可能关注的文档
- (新课标)2015届高三语文一轮复习阶段检测题03..doc
- (新课标)2015届高三语文一轮复习阶段检测题11..doc
- (教案1)掌握群众工作方法..doc
- (新课标)2015届高三语文一轮复习阶段检测题13..doc
- (新课标)2015届高三语文一轮复习阶段检测题20..doc
- (新课标)2016届高考政治二轮复习专题能力训练1生活与消费..doc
- (川教版)中国历史中考题(八年级上册)..docx
- (新课标)2016届高考政治二轮复习专题能力训练13历史观价值观..doc
- (新课标)2015届高三语文一轮复习阶段检测题19..doc
- (新课标)2016届高考数学大一轮复习函数的图象课时跟踪检测(七)理(含解析)..doc
最近下载
- 物业管理区域内房屋日常管理与维修养护方案.docx
- 新改版教科版三年级上册科学全册知识点(超全).doc
- 2030荆霄鹏《楷书入门基础教程》-结构.pdf
- 青海省1000MW风电场35kV集电线路杆塔结构施工设计图册.pdf
- 人教版音乐二年级上册《理发师》(课件).pptx
- 2023年上海市各区初三语文二模试题汇编之文言文译文汇总.docx
- 材料与诊疗项目关系对照库2013.12.27.xls
- 人教版八年级上册英语单词词性转换词形转换.docx
- IPCEIAIPCJEDECJ-STD-002E-2017元器件引子、焊、接柱和导可焊(中文版).pdf
- 普通高中学校办学水平督导评估自查报告.pdf
文档评论(0)