#lace. 2026提高组模拟赛09-T3 程老师的绣谱
2026提高组模拟赛09-T3 程老师的绣谱
时间限制:1000ms 内存限制:512MB
题目描述
程老师的朋友经营一间绣品工作室,店面不大,名气却不小,靠的是两本祖传的绣谱。每本绣谱就是一串针脚记录:第 针用一个整数表示丝线的粗细号数(号数越大线越粗)。第一本绣谱有 针,第二本有 针。两本谱是同一位太师父早年和晚年各写一本,路数一脉相承,又不完全相同。
工作室最近接了个复刻活儿,客户是位收藏家,要求从两本绣谱里找出一段"呼应针法",将来绣在两条屏风上遥相呼应。一段合格的呼应针法必须同时满足三条:
第一,它在第一本绣谱里能按原顺序找到(不一定连续,跳着挑针也行,但先后次序不能乱);
第二,它在第二本绣谱里同样能按原顺序找到;
第三,它的粗细号数严格递增——每一针都比前一针粗,这样绣出来的渐变才自然。注意"严格"两个字:前后两针号数相等是不行的,哪怕只差到"一样粗",渐变的层次感就断了。
举个例子:针法序列 满足第三条; 不满足(后两针一样粗); 也不满足(变细了)。再解释下"跳着挑针":假如一本谱的针脚是 ,那么 算按原顺序找到, 也算(跳过中间那针 ),但 不算——顺序反了。
程老师想知道:最长的呼应针法有多长?只需要一个长度,不用交出具体针法。客户的装裱师傅下周就要来定屏风的尺寸,工作室就等着这个数下料。两本谱都不算薄,一针一针对着看,看到天黑也对不出个所以然,程老师又被抓了壮丁。
输入格式
第一行两个整数 ,表示两本绣谱的针数。
第二行 个整数,表示第一本绣谱每针的粗细号数。
第三行 个整数,表示第二本绣谱每针的粗细号数。
输出格式
一行一个整数,表示最长呼应针法的长度。
数据范围
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 1 ~ 2 | 无 | |
| 3 ~ 6 | ||
| 7 ~ 8 | ||
| 9 ~ 10 | A | |
| 11 ~ 12 | B | |
| 13 ~ 16 | 无 | |
| 17 ~ 20 |
- 特殊性质 A:其中一本绣谱的号数从头到尾严格递增。
- 特殊性质 B:所有号数都不超过 。
- 对于全部数据,, 号数 。
样例
样例 1
输入:
4 4
3 1 2 2
1 2 2 3
输出:
2
解释:两本谱的公共针法里,最长的是 (第一本取第 针,第二本取第 针),长度 ——但它的后两针一样粗,不满足严格递增。满足全部三条的最长针法是 (第一本第 针,第二本第 针),长度为 。 虽然在两本里都出现,但第一本里 在最开头,配不进任何递增的长针法。
样例 2
输入:
3 3
1 2 3
1 2 3
输出:
3
解释:两本一模一样, 本身就是严格递增的公共针法,长度 。
样例 3
输入:
2 2
1 1
1 1
输出:
1
解释:两本都只有两针 。针法 在两本里都能找到,但两针一样粗,违反严格递增,只能取长度 。
- ID
- 669
- 类型
- 传统题
- Time Limit
- 1000ms
- Memory Limit
- 512MiB
- 上传者
相关
在下列比赛中: