#P12738. [POI 2016 R2] 口吃 Stutter
[POI 2016 R2] 口吃 Stutter
题目背景
翻译来自于 LibreOJ。
题目描述
题目译自 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
提示
样例 1 解释
最长公共口吃序列为 。
附加样例
- ,所有数字均为 。
- ,序列为
OLIMPIADA
和INFORMATYCZNA
的 ASCII 编码。 - ,序列 由成对递增数字组成(),序列 为 的逆序。
- ,两序列由 和 的成对交替组成()。
详细子任务附加限制及分值如下表所示。
子任务 | 附加限制 | 分值 |
---|---|---|
,每个数字在序列中至多出现两次 | ||