poj1458——Common Subsequence(最长公共子序列)
来源:互联网 发布:dps数据处理软件 编辑:程序博客网 时间:2024/05/12 21:47
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 abfcab
programming contest
abcd mnp
Sample Output
4
2
0
自己照着算法导论敲了一遍
#include <iostream>#include <algorithm>#include <cstring>#include <cmath>#include <cstdio>#include <set>#include <vector>#include <iomanip>#include <stack>#include <map>#include <queue>#define MAXN 1010#define mod 9973#define INF 0x3f3f3f3fusing namespace std;char x[MAXN],y[MAXN];int dp[MAXN][MAXN];int main(){ ios::sync_with_stdio(false); while(cin>>x>>y) { int m=strlen(x),n=strlen(y); memset(dp,0,sizeof(dp)); for(int i=1; i<=m; ++i) for(int j=1; j<=n; ++j) { if(x[i-1]==y[j-1]) dp[i][j]=dp[i-1][j-1]+1; else dp[i][j]=max(dp[i-1][j],dp[i][j-1]); } cout<<dp[m][n]<<endl; } return 0;}
- poj1458——Common Subsequence(最长公共子序列)
- POJ1458 Common Subsequence 【最长公共子序列】
- 最长公共子序列Common Subsequence POJ1458
- POJ1458 Common Subsequence 最长公共子序列
- poj1458-Common Subsequence(最长公共子序列)
- poj1458 Common Subsequence--最长公共子序列
- hdu 1159 Common Subsequence ***poj1458(最长公共子序列)
- POJ1458 Common Subsequence (最长公共子序列)
- poj1458-Common Subsequence(最长公共子序列,LCS)
- poj1458 Common Subsequence(最长公共子序列)
- poj1458 Common Subsequence (dp,最长公共子序列)
- poj1458--Common Subsequence--最长公共子序列LCS
- poj1458 Common Subsequence 最长公共子序列(LCS)
- Poj1458——最长公共子序列
- Common Subsequence(最长公共子序列)
- hdu 1159/poj1458 Common Subsequence 最长公共子串
- poj1458 Common Subsequence 最长公共序列 解题报告(附详细分析)
- DP动态规划——hdu 1008 Common Subsequence(最长公共子序列)
- 数字时钟的实现
- CaysnPrinter开发包接口说明文档 - PrinterLibs For Android
- Java--AWT事件处理机制
- 【NOIP2013模拟】Freda的传呼机 题解+代码
- 入门程序以及Controller配置
- poj1458——Common Subsequence(最长公共子序列)
- Spring BeanFactory
- RabbitMQ理解
- uubntu14.04安装搜狗输入法个人总结
- 摄像机标定示例 First calibration example - Corner extraction, calibration, additional tools
- STL学习笔记--3、迭代器iterator与traits编程
- HDU 1710 已知前序中序须求后序。
- c语言中的read和write函数
- ubuntu 14.04 adb 配置及使用