问题 B 最大公共子序列问题

时间限制: 1 Sec  内存限制: 128 MB
[提交]

题目描述

对序列X=(x1, x2, .., xm),定义其子序列为(xi1, xi2, .., xik),i1<i2<..<ik。 请计算两个序列X=(x1, x2, .., xm),Y=(y1, y2, .., yn)的最长公共子序列的长度。

输入

输入为若干行,每行是一个计算题目,每行包括两个长度不超过100的字符串,中间用空格隔开。

输出

对每一行中的两个字符串,计算并输出其最大公共子序列的长度。 每一行输入的计算结果输出一行。

样例输入

a aa ababcd dcbaabcd bcabcdef aabacfe

样例输出

11124
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int dp[1005][1005];
int main(){char a[1005];char b[1005];while(~scanf("%s",a)){scanf("%s",b);int i,j,k;for(i=0;i<=strlen(a);i++){dp[i][0]=0;}for(i=0;i<=strlen(b);i++){dp[0][i]=0;}for(i=1;i<=strlen(a);i++){for(j=1;j<=strlen(b);j++){if(a[i-1]==b[j-1]){dp[i][j]=dp[i-1][j-1]+1;}else if(dp[i-1][j]>=dp[i][j-1]){dp[i][j]=dp[i-1][j];}else{dp[i][j]=dp[i][j-1];}}}printf("%d\n",dp[strlen(a)][strlen(b)]);}return 0;
}

buct oj 最大公共子序列问题相关推荐

  1. DP-最大递增子序列与最大递增子数组; 最大公共子序列与最大公共子数组。

    这些都是动态规划的题目. 解决动态规划的题目有个重点就是找出递推方程. 但问题在于递归方程不是那么好找的.如何恰当的定义目标函数是最大的难点. 如最大公共子数组中可定义A[m][n]为以A[m] B[ ...

  2. 递归法:求两个串的最大公共子序列的长度

    问题:求两个串的最大公共子序列的长度 举例: 子串: abcgxs 与sabxfh 其最大公共子序列的为abx,长度为3 public class Zixulie {public static int ...

  3. 最大公共字符串,最大公共子序列,编辑距离,myers等算法

    1 前言 这个4个算法比较相似,并且有以下相同点和不同点 2 异同点 以str1 = "ABCDEF" , str2="ZABCDZE" 为例 相同点: 1.都 ...

  4. 最大公共子序列、子串、可重叠重复子串

    最长公共子序列 寻找两个给定序列的子序列,该子序列在两个序列中以相同的顺序出现,但是不必要是连续的 举例:X=ABCBDAB,Y=BDCABA.序列 BCA是X和Y的一个公共子序列,但不是X和Y的最长 ...

  5. LCS最大公共子序列【转载】

    在两个字符串中,有些字符会一样,可以形成的子序列也有可能相等,因此,长度最长的相等子序列便是两者间的最长公共字序列,其长度可以使用动态规划来求. 以s1={1,3,4,5,6,7,7,8},s2={3 ...

  6. 动态规划---实现输出最大公共子序列的长度以及输出最大子字符串(java语言描述)

    参考博客地址:http://blog.csdn.NET/biangren/article/details/8038605 http://blog.csdn.net/njr465167967/artic ...

  7. python实现最大公共子序列

    介绍 子序列和子串的意思不一样,如下图所示,子序列不要求连续,只需要在给定序列中出现过,并且相对顺序一致.而子串需要连续. 图片来自动态规划 最长公共子序列 过程图解 最长公共子序列(LCS): 同时 ...

  8. 华为OJ——DNA序列

    题目描述 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非常 ...

  9. 中石油oj 2654: 序列合并

    参照别人的思路自己写的代码.(代码量很大也不够优化.) #include <iostream> #include <cstring> using namespace std; ...

最新文章

  1. 根据邻接表求深度优先搜索和广度优先搜索_深度优先搜索/广度优先搜索与java的实现...
  2. hibernate jar包_源码分析 | 咋嘞?你的IDEA过期了吧!加个Jar包就破解了为什么?
  3. PolarDB数据库性能大赛:95后徐妈的经验分享
  4. java程序设计第一次作业
  5. 新时代营销解决方案:敏捷BI助力银行高效精准营销
  6. 基于WSAAsyncSelect模型实现的聊天室图形客户端
  7. css图片自适应 有缝隙,有间隙,解决办法
  8. java 进程撤销_2020-08-12 如何优雅关闭java进程
  9. Linux系统日志详解
  10. NYOJ 105 其余9个
  11. 5 个底层程序设计逻辑,决定你有多牛逼
  12. MATLAB-数据插值
  13. Axure RP小部件使用教程
  14. Linaro交叉编译链配置
  15. 手把手教学弟用js写的打砖块游戏,学弟乐哉~ 附(思路注释+源码)
  16. Hello, World——从零到实盘0
  17. 给App启用MultiDex功能
  18. 理解matplotlib、pylab与pyplot之间的关系
  19. oracle出现101,oracle常见问题(101-200)
  20. python编写程序、实现一个数字金字塔_python实现输入任意一个大写字母生成金字塔的示例...

热门文章

  1. Android高级面试题精选
  2. Redis~集群(分布理论、一致性哈希分区、虚拟槽分区、节点握手、集群通信、集群伸缩、请求路由、故障转移、集群维护)
  3. 程序员进阶神器,ProcessOn绘制时序图
  4. 绩效考核成绩管理平台
  5. 是时候让AI辅助你追剧了,以《猎场》为例
  6. mysql mysqlhotcopy_MySQL 备份和恢复 (mysqlhotcopy)
  7. 大数据征信|芝麻信用、腾讯信用和51信用卡等信用评分模型解析
  8. 图形界面 I: 用于表单按钮的函数与删除界面元素 (第四章)
  9. 计算机公式求时间差公式,excel 时间差计算方法
  10. C++ new 动态内存 对象初始化