POJ_1458_Common Subsequence
来源:互联网 发布:mysql数据库教学视频 编辑:程序博客网 时间:2024/05/01 23:41
Common Subsequence
Time Limit: 1000MS
Memory Limit: 10000KTotal Submissions: 54853
Accepted: 22866
Memory Limit: 10000KTotal Submissions: 54853
Accepted: 22866
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.
Input
The program input is from the std input. Each data set in the input contains two strings representing the given sequences. The sequences are separated by any number of white spaces. The input data are correct.
Output
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 abfcabprogramming contest abcd mnp
Sample Output
420
Source
Southeastern Europe 2003
- LCS就不多说了,看代码
#include <iostream>#include <string>#include <cstdio>#include <cstring>#include <algorithm>#include <climits>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set>#include <map>using namespace std;typedef long long LL ;typedef unsigned long long ULL ;const int maxn = 1e3 + 10 ;const int inf = 0x3f3f3f3f ;const int npos = -1 ;const int mod = 1e9 + 7 ;const int mxx = 100 + 5 ;const double eps = 1e-6 ;const double PI = acos(-1.0) ;char a[maxn], b[maxn];int la, lb, dp[maxn][maxn];int main(){// freopen("in.txt","r",stdin);// freopen("out.txt","w",stdout);while(~scanf("%s",a+1)){scanf("%s",b+1);la=strlen(a+1);lb=strlen(b+1);memset(dp,0,sizeof(dp));for(int i=1;i<=la;i++)for(int j=1;j<=lb;j++)if(a[i]==b[j])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);printf("%d\n",dp[la][lb]);}return 0;}
阅读全文
0 0
- POJ_1458_Common Subsequence
- POJ_1458_Common Subsequence
- POJ_1458_Common Subsequence
- POJ_1458_Common Subsequence(最长公共子串)
- Subsequence
- Subsequence
- Subsequence
- subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- Subsequence
- BZOJ 1096 [ZJOI2007]仓库建设
- caioj1092 并查集模板
- 注重细节
- 计蒜客 判定欧拉回路 (利用并查集实现有向图欧拉回路的判断)
- 全排列 递归方法与非递归方法实现
- POJ_1458_Common Subsequence
- 过桥问题的通解
- 描述内存分配方式以及它们的区别?
- ubuntu14.04版本MeshLab软件的安装与使用方法
- 最大公共子串问题的Python解法
- TCP的三次握手和四次挥手
- 实验楼_TCP/IP网络协议基础_Note05_S6
- CSS中可以和不可以继承的属性
- 51Nod 1135 求一个奇质数的最小原根