D. 子序列和子串

    传统题 1000ms 256MiB

子序列和子串

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

数列的子序列指的是从原数列中删除某些数后的数列。例如对于数列 [1,2,3,4,5][1,2,3,4,5],数列 [2,4,5][2,4,5][1,3,4][1,3,4] 都是它的子序列,但是 [1,4,3][1,4,3] 不是。

数列的子串是指从原数列中任意个连续位置的数字组成的数列。例如对于数列 [1,2,3,4,5][1,2,3,4,5],数列 [1,2,3][1,2,3][3,4,5][3,4,5] 都是它的子串,但是 [1,3,5][1,3,5] 不是。

现在给出两个长度分别为 NNMM 的数列,请你第二个数列中找出一个最长的子串,使得该子串是第一个数列的子序列,输出这个最长的子串的长度。

输入格式:

第一行给出两个正整数 N,MN,M,代表两个数列的长度

第二行 NN 个以空格分隔的正整数 AiA_i,代表第一个数列中的数字

第三行 MM 个以空格分隔的正整数 BiB_i,代表第二个数列中的数字

1Ai,Bi10001 \le A_i, B_i \le 1000

输出格式:

在一行中输出一个正整数代表最长的子串的长度

输入样例1:

5 4
1 2 3 4 5
3 1 4 1

输出样例1:

2

输入样例2:

6 5
4 1 5 2 3 4
4 5 4 2 3

输出样例2:

3

数据规模与约定:

  • 子任务 111010 分,满足 1N,M101 \le N, M \le 10

  • 子任务 225050 分,满足 1N,M1001 \le N, M \le 100

  • 子任务 334040 分,满足 1N,M50001 \le N, M \le 5000

枚举算法专练(小学)

未参加
状态
已结束
规则
IOI(严格)
题目
5
开始于
2026-6-7 8:00
结束于
2026-6-8 4:00
持续时间
20 小时
主持人
参赛人数
6