buct oj 最大公共子序列问题
来源:互联网 发布:中医人工智能系统 编辑:程序博客网 时间:2024/05/20 01:44
问题 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;}
0 0
- buct oj 最大公共子序列问题
- LCS最大公共子序列问题
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 最大公共子序列
- 动态规划 字符串最大公共子序列以及最大公共子串问题LCS
- 总结---最大公共子序列
- hdu1159 最大公共子序列
- LCS最大公共子序列
- 最大公共子序列LCS
- 最大公共子序列模板
- DP最大公共子序列
- LCS 最大公共子序列
- APP生成桌面快捷方式
- Laplace-Beltrami operator的理解
- Unable to find the ncurses libraries的解决办法
- win10下搭建汇编开发环境
- Java程序员从笨鸟到菜鸟之(九)——数据库有关知识补充(事务、视图、索引、存储过程)
- buct oj 最大公共子序列问题
- JAVA后端学习路线
- Java程序员从笨鸟到菜鸟之(十)枚举,泛型详解
- KMP算法
- 实现安卓下拉刷新自动返回
- windows下忘记mysql超级管理员root密码的解决办法
- Android测试的坑——屏幕翻转
- Java程序员从笨鸟到菜鸟之(十一)多线程讲解
- BUCT OJ 数字三角形