配饰_ssl2569_LCIS

来源:互联网 发布:sql去除html标签 编辑:程序博客网 时间:2024/04/29 22:07

Description


但是小L想考验一下小T,所以,他给小T出了一个难题.
他拿出了他所有的配饰并摆成两列,如果两个配饰的型号一样并且出现在不同列中,那么我们就可以认为这两个配饰为情侣配饰.另外,由于某些不为人知的原因,我们规定,在顺序选取的情况下,每选定的一对配饰必须比前面选定的一对配饰的型号要大.小T最多能够选取多少对配饰呢?

Input


共四行
第一行一个数N 表示第一列配饰的个数
第二行N个数 分别表示第一列配饰的型号
第三行一个数M 表示第二列配饰的个数
第四行M个数 分别表示第二列配饰的型号

Output


仅一个数K,表示最多能选取的情侣配饰的对数.

数据范围:


30%的数据 n,m<=10
70%的数据 n,m<=100
100%的数据 n,m<=5000

Analysis


裸的LCIS然而错了于是学习一下
类似之前的想法 f[i][j] 表示a数组前i 项匹配到b数组j 项的LCIS,那么不难得出
a[i]b[j]f[i][j]=f[i1][j]
这一项不匹配,那么状态为前一项的LCIS

a[i]=b[j]
f[i][j]=max{f[i1][k]}+1  1kj1
这一项匹配,那么状态可以在之前的基础上增加长度
然后k可以优化,数组可以滚,大概就是这样

Code



0 0
原创粉丝点击