1. <span style="color:#993399;">/*
  2. By yuan
  3. 2014/6/21
  4. At nwpu.xf
  5.  
  6. 1041.最长公共子序列
  7. 时限:1000ms 内存限制:200000K 总时限:3000ms
  8. 描写叙述
  9. 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1, x2,…, xm>,则还有一序列Z=<z1, z2,…, zk>是X的子序列是指存在一个严格递增的下标序列 <i1, i2,…, ik>。使得对于全部j=1,2,…,k有:
  10.  
  11. Xij = Zj
  12.  
  13. 假设一个序列S即是A的子序列又是B的子序列,则称S是A、B的公共子序列。
  14. 求A、B全部公共子序列中最长的序列的长度。
  15.  
  16. 输入
  17. 输入共两行,每行一个由字母和数字组成的字符串,代表序列A、B。A、B的长度不超过200个字符。
  18.  
  19. 输出
  20. 一个整数。表示最长各个子序列的长度。
  21. 格式:printf("%d\n");
  22.  
  23. 输入例子
  24. programming
  25. contest
  26.  
  27. 输出例子
  28. 2
  29.  
  30. 提示
  31.  
  32. 来源
  33. */
  34. #include<iostream>
  35. #include<stdio.h>
  36.  
  37. #include<stdlib.h>
  38. #include<string.h>
  39. using namespace std;
  40. char a[201],b[201];
  41. int sum[201][201];
  42. int la,lb;
  43. void slove()
  44. {int i,j;
  45. for(i=1;i<=la;i++)
  46. for(j=1;j<=lb;j++)
  47. {
  48. if(a[i]==b[j])
  49. sum[i][j]=sum[i-1][j-1]+1;
  50. else if(sum[i-1][j]>=sum[i][j-1])
  51. sum[i][j]=sum[i-1][j];
  52. else
  53. sum[i][j]=sum[i][j-1];
  54. }
  55. }
  56.  
  57. int main()
  58. {int i,j;
  59. memset(a,'0',201);
  60. memset(b,'0',201);
  61. memset(sum,0,201*201);
  62. for(i=1;;i++){
  63. scanf("%c",&a[i]);
  64. if(a[i]=='\n') break;}
  65. la=i-1;
  66. for(j=1;;j++){
  67. scanf("%c",&b[j]);
  68. if(b[j]=='\n') break;}
  69. lb=j-1;
  70. slove();
  71. cout<<sum[la][lb]<<endl;
  72. return 0;
  73. }</span>

最长公共字序列.cpp的更多相关文章

  1. hdu 1243 反恐训练营 最长公共字序列

    此题的题意很明确,就是求最长公共子序列: #include<iostream> #include<algorithm> #include<cstdio> #incl ...

  2. URAL 1517 Freedom of Choice(后缀数组,最长公共字串)

    题目 输出最长公共字串 #define maxn 200010 int wa[maxn],wb[maxn],wv[maxn],ws[maxn]; int cmp(int *r,int a,int b, ...

  3. (字符串)最长公共字串(Longest-Common-SubString,LCS)

    题目: 给定两个字符串X,Y,求二者最长的公共子串,例如X=[aaaba],Y=[abaa].二者的最长公共子串为[aba],长度为3. 子序列是不要求连续的,字串必须是连续的. 思路与代码: 1.简 ...

  4. HDU 5904 LCIS (最长公共上升序列)

    传送门 Description Alex has two sequences a1,a2,...,an and b1,b2,...,bm. He wants find a longest common ...

  5. 最长公共子序列与最长公共字串 (dp)转载http://blog.csdn.net/u012102306/article/details/53184446

    1. 问题描述 子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串 cnblogs belong 比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与 ...

  6. poj 3080 kmp求解多个字符串的最长公共字串,(数据小,有点小暴力 16ms)

    Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14113   Accepted: 6260 Descr ...

  7. java_基础知识_字符串练习题_计算两个字符串的最长公共字串长度

    package tek; Java算法——求出两个字符串的最长公共字符串 /** * @Title: 问题:有两个字符串str1和str2,求出两个字符串中最长公共字符串. * @author 匹夫( ...

  8. HDU 1423 最长公共字串+上升子序列

    http://acm.hdu.edu.cn/showproblem.php?pid=1423 在前一道题的基础上多了一次筛选 要选出一个最长的递增数列 lower_bound()函数很好用,二分搜索找 ...

  9. 最长公共字串(LCS)最长连续公共字串(LCCS)

    链接1:http://blog.csdn.net/x_xiaoge/article/details/7376220 链接2:http://blog.csdn.net/x_xiaoge/article/ ...

随机推荐

  1. GDB使用例子

    GDB使用例子 一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中.使用编译器(cc/gcc/g++)的 -g 参数可以做到这一点. ...

  2. Laya for...in和for each...in

    当for...in和for each...in同时作用于一个对象时,for...in 获取的是key, for each...in获取的是value for each(var i in loadInf ...

  3. LINQ-查询表达式基础

    一.LINQ查询的数据源 从应用程序的角度来看,原始源数据的特定类型和结构并不重要. 应用程序始终将源数据视为 IEnumerable<T> 或 IQueryable<T> 集 ...

  4. EasyUI 动态更新列

    function UpdateRow() { var rows = $('#tbpmgridList').datagrid('getChecked'); var productid = ''; for ...

  5. 【Luogu】P1462通往奥格瑞玛的道路(二分答案+SPFA)

    题目链接 导致我WA十几遍的原因居然是最大值不够大……以后再也不相信memset(dis,127/3,sizeof(dis))了. 此题先将花费排序,然后二分最大花费,spfa判断解是否可行.spfa ...

  6. BZOJ 3473 字符串 ——广义后缀自动机

    这题就比较有趣了. 首先匹配一遍,然后统计子树叶子节点中包含大于等于k的节点个数(HH的项链) 然后就可以搞了. 关于合法的情况数,显然是l[i]-l[fa[i]],然后向下下传即可(YY一下). # ...

  7. 启动第一个 KVM 虚机

    本节演示如何使用 virt-manager 启动 KVM 虚机. 首先通过命令 virt-manager 启动图形界面 1 # virt-manager 点上面的图标创建虚机 给虚机命名为 kvm1, ...

  8. C# 用this修饰符为原始类型扩展方法

    特点:1.静态类 2.静态方法 3.第一个参数前加this 例如:public static List<T> ToList<T>(this string Json),就是为th ...

  9. cssnext下一代的css

    前端技术更新迭代的速度令人咂舌,互联网+的风头刚起那几年,前端技术大多还停留在jquery阶段,按需加载还停留在seajs和requirejs的阶段,css3和H5也不过才崭露头角,但经过几年的飞速发 ...

  10. Codeforces 616 E Sum of Remainders

    Discription Calculate the value of the sum: n mod 1 + n mod 2 + n mod 3 + ... + n mod m. As the resu ...