#L5034. 「POI2016 R2」口吃 Stutter
「POI2016 R2」口吃 Stutter
5034. 「POI2016 R2」口吃 Stutter
题目译自 XXIII Olimpiada Informatyczna — II etap Zająknięcia
题目描述
Bitek 最近患上了一种怪病:他说话严重口吃,而且只会说出数字。他的哥哥 Bajtek 却发现,Bitek 的口吃模式似乎有规律可循。Bajtek 怀疑弟弟在装病,借此逃学,偷偷在家玩电脑游戏。这让 Bajtek 无法专心学习编程,感到十分沮丧。于是,他决定揭穿弟弟的把戏,希望借此赢得充足的编程时间。
让我们来正式描述 Bajtek 的猜想。假设有两个数字序列 和 ,分别表示 Bitek 的两次发言:
- 序列 的子序列是通过从 中删除任意元素后得到的序列。例如, 是 的子序列。
- 序列 的口吃序列是一个子序列,由连续的成对相同元素组成。例如, 是 的口吃序列。
给定 Bitek 的两次发言序列 和 ,请帮助 Bajtek 找出同时出现在两个序列中的最长口吃序列的长度。
输入格式
第一行包含两个整数 , (),分别表示序列 和 的长度。
第二行包含 个整数 (),表示序列 的元素。
第三行包含 个整数 (),表示序列 的元素。
输出格式
输出一个非负整数,表示序列 和 的最长公共口吃序列的长度。若无公共口吃序列,输出 。
样例
输入
7 9
1 2 2 3 1 1 1
2 4 2 3 1 2 4 1 1
输出
4
解释:最长公共口吃序列为 。
附加样例
- , ,所有数字均为 。
- , ,序列为
OLIMPIADA和INFORMATYCZNA的 ASCII 编码。 - , ,序列 由成对递增数字组成(),序列 为 的逆序。
- , ,两序列由 和 的成对交替组成()。
数据范围与提示
| 子任务 | 附加限制 | 分值 |
|---|---|---|
| 1 | 30 | |
| 2 | ,每个数字在序列中至多出现两次 | 28 |
| 3 | 42 |