#lace. 2026提高组模拟赛09-T3 程老师的绣谱

2026提高组模拟赛09-T3 程老师的绣谱

时间限制:1000ms 内存限制:512MB

题目描述

程老师的朋友经营一间绣品工作室,店面不大,名气却不小,靠的是两本祖传的绣谱。每本绣谱就是一串针脚记录:第 ii 针用一个整数表示丝线的粗细号数(号数越大线越粗)。第一本绣谱有 nn 针,第二本有 mm 针。两本谱是同一位太师父早年和晚年各写一本,路数一脉相承,又不完全相同。

工作室最近接了个复刻活儿,客户是位收藏家,要求从两本绣谱里找出一段"呼应针法",将来绣在两条屏风上遥相呼应。一段合格的呼应针法必须同时满足三条:

第一,它在第一本绣谱里能按原顺序找到(不一定连续,跳着挑针也行,但先后次序不能乱);

第二,它在第二本绣谱里同样能按原顺序找到;

第三,它的粗细号数严格递增——每一针都比前一针粗,这样绣出来的渐变才自然。注意"严格"两个字:前后两针号数相等是不行的,哪怕只差到"一样粗",渐变的层次感就断了。

举个例子:针法序列 1,3,51, 3, 5 满足第三条;1,2,21, 2, 2 不满足(后两针一样粗);3,23, 2 也不满足(变细了)。再解释下"跳着挑针":假如一本谱的针脚是 5,1,4,35, 1, 4, 3,那么 5,45, 4 算按原顺序找到,1,31, 3 也算(跳过中间那针 44),但 4,14, 1 不算——顺序反了。

程老师想知道:最长的呼应针法有多长?只需要一个长度,不用交出具体针法。客户的装裱师傅下周就要来定屏风的尺寸,工作室就等着这个数下料。两本谱都不算薄,一针一针对着看,看到天黑也对不出个所以然,程老师又被抓了壮丁。

输入格式

第一行两个整数 n,mn, m,表示两本绣谱的针数。

第二行 nn 个整数,表示第一本绣谱每针的粗细号数。

第三行 mm 个整数,表示第二本绣谱每针的粗细号数。

输出格式

一行一个整数,表示最长呼应针法的长度。

数据范围

测试点编号 n,mn, m \le 特殊性质
1 ~ 2 1010
3 ~ 6 100100
7 ~ 8 500500
9 ~ 10 50005000 A
11 ~ 12 B
13 ~ 16 20002000
17 ~ 20 50005000
  • 特殊性质 A:其中一本绣谱的号数从头到尾严格递增。
  • 特殊性质 B:所有号数都不超过 1010
  • 对于全部数据,1n,m50001 \le n, m \le 500011 \le 号数 109\le 10^9

样例

样例 1

输入

4 4
3 1 2 2
1 2 2 3

输出

2

解释:两本谱的公共针法里,最长的是 1,2,21, 2, 2(第一本取第 2,3,42, 3, 4 针,第二本取第 1,2,31, 2, 3 针),长度 33——但它的后两针一样粗,不满足严格递增。满足全部三条的最长针法是 1,21, 2(第一本第 2,32, 3 针,第二本第 1,21, 2 针),长度为 2233 虽然在两本里都出现,但第一本里 33 在最开头,配不进任何递增的长针法。

样例 2

输入

3 3
1 2 3
1 2 3

输出

3

解释:两本一模一样,1,2,31, 2, 3 本身就是严格递增的公共针法,长度 33

样例 3

输入

2 2
1 1
1 1

输出

1

解释:两本都只有两针 11。针法 1,11, 1 在两本里都能找到,但两针一样粗,违反严格递增,只能取长度 11

难度 提高+/省选
通过率 33.3%
尝试 6
已通过 2
ID
669
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者

相关

在下列比赛中:

暑假CSP-S模拟赛 第2场