2080最长公共子序列问题
来源:互联网 发布:开发java程序的一般步骤 编辑:程序博客网 时间:2024/06/05 19:15
最长公共子序列问题
Time Limit: 1000MS Memory Limit: 65536KB
SubmitStatistic Discuss
Problem Description
给定两个序列X=
Input
输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列X和Y。
Output
每组输出一行,表示所求得的最长公共子序列的长度,若不存在公共子序列,则输出0。
Example Input
ABCBDABBDCABA
Example Output
4
最长公共子序列:在两段字符中,任意去掉其中的字符,剩余的不改变原来顺序,并组成新的字符串。
最长公共子序列是指多个字符串可具有的最大长度的公共子序列。
#include<cstdio>#include<cstring>using namespace std;char x[505],y[505];int num[505][505];int flag[505][505];void LCS()//动态规划求解{ int i,j; for(i=1;i<=strlen(x);i++) { for(int j=1;j<=strlen(y);j++) { if(x[i-1]==y[j-1]) { num[i][j]=num[i-1][j-1]+1; flag[i][j]=1;//向下标记 } else if(num[i][j-1]>num[i-1][j]) { num[i][j]=num[i][j-1]; flag[i][j]=2;//向右标记 } else { num[i][j]=num[i-1][j]; flag[i][j]=3;//向下标记 } } }}int main(){ while(scanf("%s %s",x,y)!=EOF) { memset(num,0,sizeof(num)); memset(flag,0,sizeof(flag)); LCS(); printf("%d\n",num[strlen(x)][strlen(y)]); } return 0;}
阅读全文
0 0
- sdut 2080 最长公共子序列问题
- SDUT 2080 最长公共子序列问题
- ???2080最长公共子序列问题
- 最长公共子序列问题2080
- 2080最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 最长公共子序列问题
- 布隆过滤器
- leetcode 25. Reverse Nodes in k-Group & leetcode 92. Reverse Linked List II
- Go入门(二)-Go基础(一)
- HDU 5950 Recursive sequence(构造矩阵+矩阵幂)——2016ACM/ICPC亚洲区沈阳站
- 同一进程中的线程究竟共享哪些资源
- 2080最长公共子序列问题
- VMware Workstation 与 Device/Credential Guard 不兼容
- Sklearn.cross_validation模块和数据划分方法
- 如何访问文件状态
- RSA 加密解密
- 优秀程序员无他-善假于物也
- OpenGL 按照三角形仿射变换并贴图渲染(基于shader)(二)
- Linux学习笔记之UBOOT
- SpringMVC的学习