这个好多算法书上都有,不仅限于《算法导论》

时间限制:3000 ms  |  内存限制:65535 KB

难度:3

  • 描写叙述

  • 咱们就不拐弯抹角了,如题。须要你做的就是写一个程序,得出最长公共子序列。

    tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。

    其定义是。一个序列 S ,假设各自是两个或多个已知序列的子序列,且是全部符合此条件序列中最长的。则 S 称为已知序列的最长公共子序列。

    • 输入

    • 第一行给出一个整数N(0<N<100)表示待測数据组数

      接下来每组数据两行,分别为待測的两组字符串。

      每一个字符串长度不大于1000.

    • 输出

    • 每组測试数据输出一个整数,表示最长公共子序列长度。每组结果占一行。

    • 例子输入

    • 2
      asdf
      adfsd
      123abc
      abc123abc
    • 例子输出

    • 3
#include<iostream>
#include<cstring>
#include <string> using namespace std; int a[1010][1010]; int max(int x, int y)
{
return x>y ? x : y;
} int main()
{
int test,i,j,k,len1,len2,lcs;
string s1,s2;
cin>>test;
while(test--)
{
cin>>s1>>s2;
len1=s1.length();
len2=s2.length();
memset(a,0,sizeof(a));
lcs=0;
for(i=1;i<len1+1;i++)
{
for(j=1;j<len2+1;j++)
{
if(s1[i-1]==s2[j-1])
a[i][j]=a[i-1][j-1]+1;
else
a[i][j]=max(a[i][j-1],a[i-1][j]);
if(a[i][j]>lcs)
lcs=a[i][j];
}
}
cout<<lcs<<endl;
}
return 0;
}

NYOJ 36 最长公共子序列 (还是dp)的更多相关文章

  1. nyoj 36 最长公共子序列【LCS模板】

    最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列.tip:最长公共子序列也称作最 ...

  2. nyoj 36 最长公共子序列

    描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列. tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subseque ...

  3. nyoj 题目36 最长公共子序列

    最长公共子序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列.tip:最长公共子序列也称作最 ...

  4. P1439 【模板】最长公共子序列(DP)

    题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出格式: 一个数,即最长公共子 ...

  5. poj1458 求最长公共子序列 经典DP

    Common Subsequence Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 45763   Accepted: 18 ...

  6. hdu 1159 Common Subsequence(最长公共子序列,DP)

    题意: 两个字符串,判断最长公共子序列的长度. 思路: 直接看代码,,注意边界处理 代码: char s1[505], s2[505]; int dp[505][505]; int main(){ w ...

  7. 洛谷 P1439 【模板】最长公共子序列(DP,LIS?)

    题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列. 输入输出格式 输入格式: 第一行是一个数n, 接下来两行,每行为n个数,为自然数1-n的一个排列. 输出格式: 一个数,即最长公共子 ...

  8. 最长公共子序列(DP)

    Description 一个给定序列的子序列是在该序列中删去若干元素后得到的序列.确切地说,若给定序列 X = { x1,x2,…,xm },则另一序列Z ={ z1,z2,…,zk },X 的子序列 ...

  9. bzoj 2423: [HAOI2010]最长公共子序列【dp+计数】

    设f[i][j]为a序列前i个字符和b序列前j个字符的最长公共子序列,转移很好说就是f[i][j]=max(f[i-1][j],f[i][j-1],f[i-1][j-1]+(a[i]==b[j])) ...

随机推荐

  1. Iptables-主机防火墙设置

    基于Iptables构建主机防火墙 Iptables优点: 数据包过滤机制,它会对数据包包头数据进行分析. 1.1.1 加载相关薄块到内核 [root@centos7 ~]# lsmod | egre ...

  2. 【CS Round #43 A】Expected Dice

    [链接]https://csacademy.com/contest/round-43/task/expected-dice/ [题意] 大水题 [题解] 把36种可能的结果都存下来. 然后把重复出现的 ...

  3. 51Nod——N1284 2 3 5 7的倍数

    https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1284 基准时间限制:1 秒 空间限制:131072 KB 分值: 5  ...

  4. hunnu11550:欧拉函数

    Problem description   一个数x的欧拉函数Φ(x)定义为全部小于x的正整数中与x互质的数的数目,如小于5且和5互质的数有1.2.3.4,一共4个,故Φ(5)=4. 对于随意正整数x ...

  5. 把java程序打包成.exe

    准备工作:将可执行的jar包跟资源跟第三方包都放到一个目录下. 能够将jre包也放入里面.这样在没有安装jre的情况下也能够执行. watermark/2/text/aHR0cDovL2Jsb2cuY ...

  6. css滑动鼠标到img后,切换图片

    写了个样例: <a href="#"><img src="http://csdnimg.cn/pubfooter/images/gongshang_lo ...

  7. jmeter--错误之Not able to find Java executable or version. Please check your Java installation. errorlevel=2

    学习jmeter中遇到的问题: 'findstr' 不是内部或外部命令,也不是可运行的程序或批处理文件. Not able to find Java executable or version. Pl ...

  8. .netcore下的微服务、容器、运维、自动化发布

    原文:.netcore下的微服务.容器.运维.自动化发布 微服务 1.1     基本概念 1.1.1       什么是微服务? 微服务架构是SOA思想某一种具体实现.是一种将单应用程序作为一套小型 ...

  9. windows 开机总动运行bat文件

    抄自 https://blog.csdn.net/csdnliuxin123524/article/details/78949803 就是把bat文件放到   开始->启动  的那个文件夹里就可 ...

  10. P2P平台公司的9种职位

     1.技术   开发类:开发系统,实现新功能   维护类:服务器和网站维护   更多:Web前端等      观点:技术岗位很关键,但是很多不懂技术的老板,不会认可你的价值.   太多的老板,以为技术 ...