第三周-3.1最长公共子序列

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/oytf10001/article/details/88615091

                           最长公共子序列


时间限制:1 sec

空间限制:256 MB

问题描述

给定两个 1 到 n 的排列 A,B (即长度为 n 的序列,其中 [1,n] 之间的所有数都出现了恰好一次)。

求它们的最长公共子序列长度。

输入格式

第一行一个整数 n ,意义见题目描述。

第二行 n 个用空格隔开的正整数 A[1],…,A[n],描述排列 A。

第三行 n 个用空格隔开的正整数 B[1],…,B[n],描述排列 B。

输出格式

一行一个整数,表示 A,B 的最长公共子序列的长度。

样例输入

5
1 2 4 3 5
5 2 3 4 1

样例输出

2

样例解释

(2,3) 和 (2,4) 都可以是这两个序列的最长公共子序列。

数据范围

对于 80% 的数据,保证 n<=5,000。

对于 100% 的数据,保证 n<=50,000。

提示

[把 A 中的所有数替换成其在 B 中出现的位置,想一想,新序列的最长上升子序列和所求的东西有什么关系呢?]

另外,为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板,也提供了含有算法的大部分实现细节的程序。

你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。

这些程序可以从【这里】下载。

猜你喜欢

转载自blog.csdn.net/oytf10001/article/details/88615091