POJ1458(最长公共子序列)
2015-11-13 13:46
417 查看
Common Subsequence
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 44223 | Accepted: 18088 |
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
Source
Southeastern Europe 2003const int maxn = 1010; int dp[maxn][maxn]; char str1[maxn], str2[maxn]; int main() { dp[0][0] = 0; int len1, len2; while (~scanf("%s %s", str1, str2)) { len1 = strlen(str1); len2 = strlen(str2); for (int i = 1; i <= len1; i ++) { for (int j = 1; j <= len2; j ++) { if (str1[i-1] == str2[j-1]) dp[i][j] = dp[i-1][j-1] + 1; else dp[i][j] = max(dp[i-1][j], dp[i][j-1]); } } printf("%d\n", dp[len1][len2]); } return 0; }
相关文章推荐
- void与void*详解 http://zhengdl126.iteye.com/blog/1739165
- Maven学习 (一) 搭建Maven环境
- 极光消息推送服务器端开发实现推送(下)
- 维度模型数据仓库(十四) —— 杂项维度
- 匿名内部类易错点
- SQL Server 统计信息维护策略的选择
- 移动应用 Bug 快速反馈神器
- ThinkPHP自动验证
- 二叉树前序遍历读入和输出模板-递归算法
- Android Context完全解析,你所不知道的Context的各种细节
- Swap Nodes in Pairs
- 全功能智能车之PC上位机蓝牙遥控起步(第七篇)
- 直接使用sys_guid()返回乱码问题
- 常用的表操作
- Mybatis 3.1中 Mapper XML 文件 的学习详解
- AutoCAD.Net/C#.Net QQ群:193522571 VS2013与cad调试时的问题
- 双向链表的算法设计和实现(数据结构)
- 实际案例讲解iOS设计模式——MVC模式
- POJ 1679-The Unique MST( 判断最小生成树的唯一性)
- SQLite升级数据库时修改表字段,如何保留以前的数据