C. 徐老师的序列匹配

    传统题 1500ms 512MiB

徐老师的序列匹配

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

题目描述

徐老师最近在复习字符串匹配,他觉得只会字符串匹配没什么意思

众所周知,字符在存储时本质上只是一个整数,于是徐老师决定开创一个新的问题——序列匹配!

徐老师会给定 nn 个整数,依次为 a1∼ana_1 \sim a_n

接着给定 qq 次询问,每次询问会给出一个序列 b1∼blenb_1 \sim b_{len}

问 bb 序列在 aa 序列中出现了多少次?

P.S. 这里我们认为若存在一个整数 i (i+len−1≤n)i\ (i + len - 1 \leq n) 满足:ai∼ai+len−1a_i \sim a_{i + len - 1} 和 b1∼blenb_1 \sim b_{len} 是一样的,即对于任意 j∈[1,len]j \in [1, len], 满足 ai+j−1=bja_{i+j-1} = b_j

则表示 bb 序列在 aa 序列的 ii 位置处出现了一次

输入格式

本题部分测试点要求在线处理

第一行为为一个整数 opop ,代表本测试点是否要求在线处理

第二行为两个整数 nn 和 qq,含义如题

第三行为一个长为 nn 的正整数序列,表示 a1∼ana_1 \sim a_n

接下来 qq 行,每行输入的第一个整数表示 bb 序列长度 lenlen,然后依次输入 lenlen 个整数分别表示 b1∼blenb_1 \sim b_{len}

特别的,若 op=1op=1,则每次输入的 bb 序列需要经过处理,设上一次询问的答案为 lastanslastans(初始时 lastans=0lastans = 0),则对于输入的 bib_i 进行 bi=bi xor lastansb_i = b_i \ xor \ lastans 的处理后,才是真实的 bib_i 值

输出格式

输出 qq 行,每行输出一个整数表示每次询问的答案

数据范围

设 TT 为测试点编号,max(bi)max(b_i) 为 bib_i 真实值的最大值,对于所有数据保证 ai≤106a_i \leq 10^6

TT nn qq ∑i=1qleni\sum_{i=1}^qlen_i max(leni)max(len_i) max(bi)max(b_i) opop
11 ≤104\leq 10^4 ≤5∗103\leq 5*10^3 ≤5∗103\leq 5*10^3 ≤106\leq 10^6 00
22 11
33 ≤105\leq 10^5 ≤105\leq 10^5 00
44 11
5∼65\sim 6 ≤105\leq 10^5 ≤100\leq 100 00
7∼87\sim 8 ≤106\leq 10^6
9∼109\sim 10 ≤50\leq 50 11
11∼2011\sim 20 ≤105\leq 10^5

样例输入1

0
10 5
1 2 3 1 2 2 3 2 3 1
2 1 2
3 2 3 1
1 1
4 1 2 3 3
2 2 3

样例输出1

2
2
3
0
3

样例输入2

1
10 5
1 2 3 1 2 2 3 2 3 1 
2 1 2 
3 0 1 3 
1 3 
4 2 1 0 0 
2 2 3 

样例输出2

2
2
3
0
3

2026暑假提高组模拟赛(3)

未参加
状态
已结束
规则
IOI
题目
3
开始于
2026-8-2 16:30
结束于
2026-8-12 16:30
持续时间
240 小时
主持人
参赛人数
24