/ Vijos / 题库 /

最长凹形公共子序列

最长凹形公共子序列

时间限制:1秒  内存限制:256M


【问题描述】

  设 \(t_1,t_2,…,t_k\) 是序列 \(A\) 和 \(B\) 的公共子序列,且满足下列关系:

    \(t_1 > … > t_i < t_{i+1} < … < t_k(1≤i≤k)\)

  我们称 \(t_1,t_2,…,t_k\) 是序列 \(A\) 和 \(B\) 的凹形公共子序列。

  现在给出两个长度均为 \(n\) 的整数序列 \(A\) 和 \(B\),请编程求它们的最长的凹形公共子序列的长度。

【输入格式】

  第一行是一个整数 \(n\),表示序列的长度。接下来的两行每行有 \(n\) 个整数,分别表示序列 \(A\) 和 \(B\)。同行相邻整数间用一个空格分开。

【输出格式】

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

【输入输出样例】

 Input

11
1 4 5 3 1 6 2 7 4 2 9
7 5 4 6 3 1 6 8 7 9 3

 Output

6

【数据限制】

  50%的数据满足:\(1≤n≤500\)
  100%的数据满足:\(1≤n≤5000\),序列的整数都是C++的int。

【来源】

  Mr.he

信息

ID
3065
难度
9
分类
动态规划 | LCSLIS 点击显示
标签
(无)
递交数
2
已通过
1
通过率
50%
被复制
3
上传者