Common Subsequence

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 28494    Accepted Submission(s): 12735

Problem Description
A subsequence of a given sequence is the given sequence with some elements (possible none) left out. Given a sequence X = <x1, x2, ..., xm> another sequence Z = <z1, z2, ..., zk> is a subsequence of X if there exists a strictly increasing sequence <i1, i2,
..., ik> of indices of X such that for all j = 1,2,...,k, xij = zj. For example, Z = <a, b, f, c> is a subsequence of X = <a, b, c, f, b, c> with index sequence <1, 2, 4, 6>. Given two sequences X and Y the problem is to find the length of the maximum-length
common subsequence of X and Y. 

The program input is from a text file. Each data set in the file contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct. For each set of data the program prints on the standard
output the length of the maximum-length common subsequence from the beginning of a separate line. 
 
Sample Input
abcfbc abfcab
programming contest
abcd mnp
 
Sample Output
4
2
0
 


非常基础的一道LCS。以下给出第一种情况的DP路线,例如以下图。

希望能够帮助大家。


AC代码:

#include<stdio.h>
#include<string.h>
#define max(a,b) (a>b? a:b)
char a[1000],s[1000];
int dp[1000][1000];
int main()
{
int i,j,k;
while(scanf("%s%s",a,s)!=EOF)
{
memset(dp,0,sizeof(dp));
int l=strlen(a);
int le=strlen(s);
for(i=1;i<=l;i++)
{
for(j=1;j<=le;j++)
if(a[i-1]==s[j-1])//推断左側和上側字符是否相等
dp[i][j]=dp[i-1][j-1]+1;//把左上側的dp值+1
else
dp[i][j]=max(dp[i-1][j],dp[i][j-1]);//取左側或上側的最大dp值
}
printf("%d\n",dp[l][le]);
}
return 0;
}

     

最新文章

  1. RabbitMq 集群搭建
  2. JQuery选择器JQuery 事件
  3. LinkedList
  4. 设计winform自带动态加载工具按钮和实现热键响应
  5. exgcd,求乘法逆元
  6. C# virtual和abstract的
  7. 完美解决IE6不支持position:fixed的bug
  8. git无法连接bitbucket/github时,出现&quot;Permission deied(publickey)&quot;
  9. iOS数据持久化存储:归档
  10. 小qyvlik 先看两个视频,和 QtQuick UI 问答
  11. win7 下面使用任务计划程序执行php脚步
  12. servlet三种实现方式之三通过继承HttpServlet开发servlet
  13. Oracle常用语句记录
  14. CSS传统布局之布局模型
  15. [HDUOJ1312]Red And Black (经典的DFS)
  16. php gif处理
  17. spring开启事务时启动报错SAXParseException
  18. Redhat 简单本地yum 配置
  19. WPF Demo13通知项属性+数据绑定(代码层)
  20. 用bayes公式进行机器学习的经典案例

热门文章

  1. nodejs02
  2. POJ 1631 nlogn求LIS
  3. 解决夸dll返回dynamic无法访问
  4. Python3 利用POP3与smtplib进行计算机远程控制
  5. python supper()函数
  6. Java 异常的捕获与处理详解(二)
  7. 题解 P3605 【[USACO17JAN]Promotion Counting晋升者计数】
  8. Java基础学习总结(14)——Java对象的序列化和反序列化
  9. ECNUOJ 2615 会议安排
  10. 二、 HBase核心功能模块。