#P16082. [Oni2018国家队选拔赛]pscfft
[Oni2018国家队选拔赛]pscfft
题目描述
记 ++ 表示两个序列的连接。例如:
定义函数 :
$$\operatorname{inc}([a_0,\ldots,a_{n-1}],k,s)=[(a_0+k)\bmod s,\ldots,(a_{n-1}+k)\bmod s].$$递归定义序列族 :
$$FFT(k+1,s)=\operatorname{inc}(FFT(k,s),0,s)++\operatorname{inc}(FFT(k,s),1,s)++\cdots++\operatorname{inc}(FFT(k,s),s-1,s).$$例如:
$$FFT(3,3)=[0,1,2,1,2,0,2,0,1,1,2,0,2,0,1,0,1,2,2,0,1,0,1,2,1,2,0].$$给定一个长度为 的序列 和一个正整数 。请找出 作为连续子序列第一次出现在
中的起始位置,并输出该位置对 取模的结果;如果 不出现,则输出 -1。
本文中的位置从 开始计数。
输入格式
第一行一个正整数 ,表示测试组数。
接下来 组测试,每组格式如下:
第一行两个正整数 。
第二行 个整数,表示序列 。保证每个元素都在 内。
输出格式
对每组测试输出一行:
- 若 会在 中出现,输出其第一次出现位置对 取模的结果;
- 否则输出
-1。
数据范围与子任务
- 一个输入文件中所有测试的 之和不超过 。
- 10%:,,
- 10%:,,且若答案存在,则答案不超过
- 10%:
- 30%:
- 30%:
- 保证:若存在某个 使得 出现在 中,则 也会出现在 中。
样例输入1
5
4 2
1 0 1 1
5 3
2 0 1 2 1
20 6
2 4 5 0 1 2 3 5 0 1 2 3 4 0 1 2 3 4 5 1
2 10000000
5 5
5 5
4 3 2 1 0
样例输出1
11
134
83
273492549
-1
样例说明
共有 组测试。第一组中, 的前若干项以
0110100110010110