QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 256 MB 總分: 100

#5045. Король

统计

Как всем известно, количество статей Pang растет экспоненциально. Поэтому нам интересна последовательность King.

Дано простое число $p$. Последовательность $(a_1, a_2, \dots, a_n)$ называется последовательностью King тогда и только тогда, когда существует целое число $1 \le q < p$ такое, что для всех целых $i \in [2, n]$ выполняется $q a_{i-1} \equiv a_i \pmod p$.

Дана последовательность $B = (b_1, \dots, b_n)$. Какова длина наибольшей подпоследовательности King в $B$?

Подпоследовательность — это последовательность, которую можно получить из другой последовательности путем удаления некоторых элементов без изменения порядка оставшихся элементов.

Pang в последнее время очень занят, поэтому единственное, что он хочет знать, — это то, больше или равна длина ответа $\frac{n}{2}$.

Если длина наибольшей подпоследовательности King меньше $\frac{n}{2}$, выведите $-1$. В противном случае выведите длину наибольшей подпоследовательности King.

Входные данные

Первая строка содержит целое число $T$, обозначающее количество тестов ($1 \le T \le 1000$).

Первая строка каждого теста содержит два целых числа $n$ и $p$ ($2 \le n \le 200000$, $2 \le p \le 1000000007$, $p$ — простое число). Сумма $n$ по всем тестам не превышает $200000$.

Вторая строка каждого теста содержит последовательность $b_1, \dots, b_n$ ($1 \le b_i < p$).

Выходные данные

Для каждого теста выведите одну строку, содержащую ответ: $-1$ или длину наибольшей подпоследовательности King.

Примеры

Входные данные 1

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

Выходные данные 1

5
-1
3
-1

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#219EditorialOpen题解jiangly2025-12-13 00:16:47View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.