#DP0004. 最长公共子序列

最长公共子序列

题目描述

给定一个长度为 nn 的数组 a1,a2,,ana_1,a_2,…,a_n 以及一个长度为 mm 的数组 b1,b2,,bmb_1,b_2,…,b_m,问 aabb 的最长公共子序列的长度。

也就是说,我们要找到最大的 kk 以及数组 p1,p2,,pkp_1,p_2,…,p_kq1,q2,,qkq_1,q_2,…,q_k 满足 1p1<p2<<pkn1≤p_1<p_2<⋯<p_k≤n 并且 1q1<q2<<qkm1≤q_1<q_2<⋯<q_k≤m 并且对于所有的 i(1ik)i(1≤i≤k)api=bqia_{p_i}=b_{q_i}

输入格式

第一行两个整数 n,mn,m

接下来一行 nn 个整数,a1,a2,,ana_1,a_2,…,a_n

接下来一行 mm 个整数,b1,b2,,bmb_1,b_2,…,b_m

输出格式

输出一个整数,表示答案。

Samples

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

数据规模

对于所有数据,保证 1n,m1000,1ai,bi1031≤n,m≤1000,1≤a_i,b_i≤10^3