#tctm1828. 公共子序列
公共子序列
公共子序列
题目描述
我们称序列 是序列 的子序列,当且仅当存在严格上升的序列 ,使得对 ,有 。比如 是 的子序列。
现在给出两个序列 和 ,你的任务是找到 和 的最大公共子序列,也就是说要找到一个最长的序列 ,使得 既是 的子序列也是 的子序列。
输入格式
输入包括多组测试数据。每组数据包括一行,给出两个长度不超过 的字符串,表示两个序列。两个字符串之间由若干个空格隔开。
输出格式
对每组输入数据,输出一行,给出两个序列的最大公共子序列的长度。
样例输入 #1
abcfbc abfcab
programming contest
abcd mnp
样例输出 #1
4
2
0
数据范围
字符串长度不超过 。多组测试数据。
知识点与难度
本题涉及的知识点从属于 GESP 6级(动态规划基础, 线性DP),难度等级:⭐⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 / 特殊性质 |
| 2 | 15 | 9~11 | Hack |
| 3 | 30 | 12~20 | 中大规模 |
| 4 | 25 | 21~25 | 随机回归 |