- 37
- 0
- 约3.85千字
- 约 3页
- 2020-01-29 发布于天津
- 举报
安阳市一中信息学奥赛辅导资料
第 PAGE 1 页 共 NUMPAGES 3 页
动态规划程序设计6
1、最长公共子序列问题
【问题描述】
一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说.若给定序列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的一个最长公共子序列。
输入:
输入文件共有两行.每行为一个由大写字母构成的长度不超过200的字符串,表示序列X和Y。
输出:
输出文件第一行为一个非负整数.表示所求得的最长公共子序列的长度.若不存在公共子序列.则输出文件仅有一行输出一个整数0.否则在输出文件的第二行输出所求得的最长公共子序列(也用一个大写字母组成的字符串表示).若符合条件的最长公共子序列不止一个,只需输出其中任意的一个。
【样例输入】LCS.IN
ABCBDAB
BDCABA
【样例输出】LCS.OUT
4
BCBA
【问题分析】
动态规划算法可有效地解此问题。下面我们按照动态规划算法设计的各个步骤来设计一个解此问题的有效算法.
1、最长公共子序列的结构
解最长公共子序列问题时最容易想到的算法是穷举搜索法.即对x的每一个子序列.检查它是否也是Y的子序列.从而确定它是否为x和Y的公共子序列.并且在检查过程中选出最长的公共子序列。x的所有子序列都检查过后即可求出x和Y的最长公共子序列,x的一个子序列相应于下标序列{1,2,…,m}的一个于序列.因此.x共有2m个不同子序列.从而穷举搜索法需要指数时间。
事实上,最长公共子序列问题也有最优子结构性质,因为我们有如下定理:
定理:LCS的最优子结构性质
设序列X=x1,x2,…,xm和Y=y1,y2,…,yn的一个最长公共子序列Z=z1,z2,…,zk.则:
若xm=yn则zk=xm=yn 且zk-1是xm-1和Yn-1最长公共子序列:
若xm≠yn且zk≠xm,则Z是xm-1和Y的最长公共子序列;
若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。
证明:
用反证法。若zk≠Xm,则z1,z2,….zk,xm是x和Y的长度为k+1的公共子序列。这与z是X和Y的一个最长公共子序列矛盾,因此,必有Zk=xm=yn,由此可知zk-1是xm-1和Yn-1的一个长度为k-1的公共子序列。若xm-1和Yn-1有一个长度大于k-1的公共子序列W,则将xm加在其尾部将产生x和Y的一个长度大于k的公共子序列.此为矛盾。故Zk-1是xm-1和Yn-1的一个最长公共子序列。
由于zk≠xm,z是xm-1和Y的一个公共子序列:若xm-1和Y有一个长度大于k的公共子序列w,则w也是x和Y的一个长度大于k的公共子序列。这与z是x和Y的一个最长公共子序列矛盾。由此即知z是xm-1和Y的一个最长公共子序列。
这个定理告诉我们,两个序列的最长公共子序列包含了这两个序列的前缀的最长公共子序列。因此,最长公共子序列问题具有最优子结构性质。
2.子问题重叠性质
由最长公共子序列问题的最优子结构性质可知.要找出x=xl,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的一个最长公共子序列。由此递归结构容易看到最长公共子序列问题具有子问题重叠性质,例如.在计算X和Y的最长公共子序列时,可能要计算出x和Yn-1及xm-1和Y的最长公共子序列。而这两个子问题都包含一个公共子问题.即计算xm-1和Yn-1的最长公共子序列。
我们来建立子问题的最优值的递归关系。用c[i,j]记录序列xi和Yj的最长公共子序列的长度。其中xi=x1,x
您可能关注的文档
- 方案名称‘故事爆米花’Storypopcorn壹缘起-CIRN国民中小学.PDF
- 方法被试卡通画写故事组看异性图片并想象与其谈恋爱-Eduwest.PPT
- 施工许可竣工验收信息…-四川住房城乡建设服务网.PPT
- 施工过程中建筑火灾后结构与处理.PDF
- 无敌CD-368主机功能明细表表.PDF
- 施用有机无机复混肥对太湖平原乌泥土稻麦生长的-南京农业大学学报.PDF
- 无线传感器网络中基于空间相关性的分簇算法研究-计算机应用与软件.PDF
- 无锡先导智能装备股份有限公司2018年半报告摘要.PDF
- 无菌猕猴桃种子采集方法研究Obtainingasepticseedsof-广西植物.PDF
- 日式古宅跨海移筑淡水.DOC
最近下载
- 2026年内分泌科糖尿病精细化管理实施方案.docx
- 12SS508-混凝土模块式室外给水管道附属构筑物图集.pdf
- 2025华阳新材料科技集团有限公司招聘井下技能操作人员笔试模拟试题及答案解析.docx VIP
- 6.3.2 世界上最大的黄土堆积区—黄土高原(第2课时2023-2024学年八年级下册地理精品教学课件(人教版)+.pptx VIP
- 2025华阳新材料科技集团有限公司招聘井下技能操作人员笔试备考题库及答案解析.docx VIP
- (189号劳卫发)沈阳铁路局劳动用工管理办法.doc VIP
- 2025年高考化学试卷真题及答案解析word.doc VIP
- 鱼骨图分析法.pptx VIP
- 2025甲状腺功能减退症基层诊疗指南.docx VIP
- 中成药课件(基础).ppt VIP
原创力文档

文档评论(0)