题目描述
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN)。此外,给定 A 的一个长度为 P 的连续子序列 X=(X1,X2,…,XP),以及 A 的一个长度为 Q 的连续子序列 Y=(Y1,Y2,…,YQ)。
你可以对 X 进行如下四种操作中的任意一种,每种操作可以执行任意次数(也可以不执行):
- 在 X 的开头添加任意一个整数。
- 删除 X 的开头元素。
- 在 X 的末尾添加任意一个整数。
- 删除 X 的末尾元素。
但无论操作前后,X 必须始终是 A 的非空连续子序列。请你求出将 X 变为 Y 所需的最小操作次数。已知在本题的限制下,总能通过若干次操作使 X 变为 Y。
什么是连续子序列?
序列 X=(X1,X2,…,XP) 是序列 A=(A1,A2,…,AN) 的连续子序列,当且仅当存在整数 1≤l≤N−P+1,使得对于所有 i=1,2,…,P,都有 Xi=Al+i−1。
输入格式
输入按以下格式从标准输入读入。
N A1 A2 … AN P X1 X2 … XP Q Y1 Y2 … YQ
输出格式
输出答案。
样例 1
输入
7
3 1 4 1 5 7 2
2
3 1
3
1 5 7
输出
3
样例 2
输入
20
2 5 1 2 7 7 4 5 3 7 7 4 5 5 5 4 6 5 6 1
6
1 2 7 7 4 5
7
7 4 5 5 5 4 6
输出
7
说明/提示
数据范围
- 1≤N≤2×105
- 1≤Ai≤N
- 1≤P,Q≤N
- (X1,X2,…,XP) 和 (Y1,Y2,…,YQ) 都是 (A1,A2,…,AN) 的连续子序列
- 输入均为整数
样例解释 1
可以按如下步骤操作,使 X 始终为 A 的非空连续子序列,并最终变为 Y:
- 首先删除 X 的开头元素,结果 X=(1)。
- 然后在 X 的末尾添加 5,结果 X=(1,5)。
- 再在 X 的末尾添加 7,结果 X=(1,5,7),此时 X 与 Y 相同。
上述操作共需 3 次,这就是最小操作次数。
由 ChatGPT 4.1 翻译