说明
众所周知,Pang 的论文数量呈指数增长。因此,我们对 King 序列产生了好奇。
给定一个质数 p。当且仅当存在一个整数 1≤q<p,使得对于所有整数 i∈[2,n],都有 qai−1≡ai(modp),则序列 (a1,a2,…,an) 被称为 King 序列。
给定一个序列 B=(b1,…,bm),请问 B 的最长 King 子序列的长度是多少?
子序列指的是从原序列中删除若干元素(可以为零),且不改变剩余元素的相对顺序后得到的序列。
Pang 最近非常忙,所以他只关心答案是否大于等于 2n。
如果最长 King 序列的长度小于 2n,输出 −1。否则,输出最长 King 子序列的长度。
输入格式
第一行包含一个整数 T,表示测试用例的数量(1≤T≤1000)。
每个测试用例的第一行包含两个整数 n 和 p(2≤n≤200000,2≤p≤1000000007,p 为质数)。所有测试用例中 n 的总和不超过 200000。
每个测试用例的第二行包含一个长度为 n 的序列 b1,…,bn(1≤bi<p)。
输出格式
对于每个测试用例,输出一行答案,若最长 King 子序列长度小于 2n,则输出 −1,否则输出最长 King 子序列的长度。
4
6 1000000007
1 1 2 4 8 16
6 1000000007
597337906 816043578 617563954 668607211 89163513 464203601
5 1000000007
2 4 5 6 8
5 1000000007
2 4 5 6 7
5
-1
3
-1
提示
由 ChatGPT 4.1 翻译