A5090 最长公共子序列(弱化版)

暂无评定 传统题 计算几何 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交2/9

A5090最长公共子序列(弱化版)

暂无评定 传统题 计算几何 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交2/9

最长公共子序列

题目描述

给定长度分别为 nn、mm 的两个整数序列 aa、bb,求它们的最长公共子序列的长度。

一个序列的子序列是从原序列中删除若干个元素(可以不删除),保留其余元素的相对顺序得到的序列。子序列中的元素不要求连续。

如果一个序列同时是 aa 和 bb 的子序列,就称它为这两个序列的公共子序列。若两个序列没有相同元素,最长公共子序列的长度为 00。

输入格式

第一行包含两个整数 n,mn,m,表示两个序列的长度。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

第三行包含 mm 个整数 b1,b2,…,bmb_1,b_2,\ldots,b_m。

输出格式

输出一个整数,表示两个序列的最长公共子序列长度。

样例 1

3 5
1 2 3
1 9 2 9 3
3

样例解释

序列 1 2 3 是两个序列的公共子序列,长度为 33。它在第二个序列中不连续,但出现顺序符合要求。

样例 2

4 5
1 2 4 5
4 1 3 3 2
2

样例解释

一种最长公共子序列为 1 2,长度为 22。

数据范围与评分

对于所有测试数据,1≤n,m≤20001\le n,m\le2000,−109≤ai,bj≤109-10^9\le a_i,b_j\le10^9。

测试组 分值 附加限制
1 20 分 n,m≤20n,m\le20
2 30 分 n,m≤200n,m\le200
3 50 分 无

每组内全部测试点通过才能获得该组分数。