| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 5 초 | 1024 MB | 0 | 0 | 0 | 0.000% |
Рассмотрим $A$ --- множество неотрицательных целых чисел. Минимальное неотрицательное целое число, которое не встречается в $A$, обозначим как $\mathrm{mex}(A)$. Например, $\mathrm{mex}(\{0, 1, 2, 4, 5, 9\}) = 3$. Эта функция часто используется, например, в теории игр.
Операция <<побитовое исключающее или>> (обозначается <<xor>> в Паскале и Python, <<\char 94>> в C++ и Java) для двух целых чисел определена следующим образом: $i$-й бит результата равен $1$ тогда и только тогда, когда в одном из чисел этот бит $1$, а в другом $0$. Будем обозначать эту операцию символом $\oplus$. Например, $6 \oplus 10 = 110_2 \oplus 1010_2 = 1100_2 = 12$.
Определим ещё одну операцию над множеством $A$, содержащим число $0$. Операция будет называться <<ультра>>. Пусть $m = \mathrm{mex}(A)$. Заметим, что $m > 0$. Построим новое множество $\mathrm{ultra}(A)$ следующим образом: применим <<побитовое исключающее или>> с числом $(m - 1)$ ко всем элементам $A$. Например, $\mathrm{ultra}(\{0, 1, 2, 4, 5, 9\}) = \{0 \oplus 2, 1 \oplus 2, 2\oplus 2, 4\oplus 2, 5\oplus 2, 9\oplus 2\}=\{2, 3, 0, 6, 7, 11\} = \{0, 2, 3, 6, 7, 11\}$. Можно показать, что если множество $A$ содержит $0$, то множество $\mathrm{ultra}(A)$ также содержит $0$.
Выберем множество $A_0$, состоящее из целых чисел от $0$ до $2^k-1$ и содержащее $0$. Рассмотрим следующую последовательность:
Будем называть множество $A_0$ $\mathrm{mex}$-стабильным, если начиная с некоторого индекса $l$ числа $m_i$ перестают меняться. То есть, для всех $i \ge l$ выполнено $m_i = m_l$. Число $m_l$ будем называть $\mathrm{mex}$-пределом множества $A_0$.
Вам даны числа $k$, $n$ и $p$. Вычислите количество множеств $A_0$, которые:
Так как ответ может быть большим, выведите его по простому модулю $M$. Гарантируется, что $(M-1)$ делится на $2^{18}$.
В первой строке дано одно целое число $M$ --- модуль, по которому нужно посчитать ответ ($3 \leq M \leq 10^9$; $(M-1)$ делится на $2^{18}$). Гарантируется, что $M$ простое число.
Во второй строке дано одно целое число $t$ --- количество наборов входных данных ($1 \le t \le 100\,000$).
Для каждого набора входных данных в единственной строке даны три целых числа $k$, $n$ и $p$ ($1 \le k \le 17$; $1 \le n, p \le 2^k$).
Для каждого набора входных данных на новой строке выведите одно целое число --- количество искомых множеств $A$, взятое по модулю $M$.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 3 | $k \leq 1$, $t \leq 10$ |
| 2 | 5 | $k \leq 2$, $t \leq 10$ |
| 3 | 7 | $k \leq 3$, $t \leq 10$ |
| 4 | 8 | $k \leq 4$, $t \leq 10$ |
| 5 | 3 | $k \leq 5$, $t \leq 10$ |
| 6 | 3 | $k \leq 5$, $t \leq 10^5$ |
| 7 | 3 | $k \leq 6$, $t \leq 10$ |
| 8 | 3 | $k \leq 6$, $t \leq 10^5$ |
| 9 | 3 | $k \leq 7$, $t \leq 10$ |
| 10 | 3 | $k \leq 7$, $t \leq 10^5$ |
| 11 | 2 | $k \leq 8$, $t \leq 10$ |
| 12 | 2 | $k \leq 8$, $t \leq 10^5$ |
| 13 | 2 | $k \leq 9$, $t \leq 10$ |
| 14 | 2 | $k \leq 9$, $t \leq 10^5$ |
| 15 | 3 | $k \leq 10$, $t \leq 10$ |
| 16 | 3 | $k \leq 10$, $t \leq 10^5$ |
| 17 | 3 | $k \leq 11$, $t \leq 10$ |
| 18 | 3 | $k \leq 11$, $t \leq 10^5$ |
| 19 | 3 | $k \leq 12$, $t \leq 10$ |
| 20 | 3 | $k \leq 12$, $t \leq 10^5$ |
| 21 | 3 | $k \leq 13$, $t \leq 10$ |
| 22 | 3 | $k \leq 13$, $t \leq 10^5$ |
| 23 | 3 | $k \leq 14$, $t \leq 10$ |
| 24 | 3 | $k \leq 14$, $t \leq 10^5$ |
| 25 | 4 | $k \leq 15$, $t \leq 10$ |
| 26 | 3 | $k \leq 15$, $t \leq 10^5$ |
| 27 | 4 | $k \leq 16$, $t \leq 10$ |
| 28 | 3 | $k \leq 16$, $t \leq 10^5$ |
| 29 | 4 | $k \leq 17$, $t \leq 10$ |
| 30 | 3 | $k \leq 17$, $t \leq 10^5$ |
998244353 6 3 2 1 3 2 2 3 2 3 3 2 4 3 5 1 4 6 1
6 1 0 0 29 2461
Всего существует $7$ $\mathrm{mex}$-стабильных множеств размера $2$ из чисел от $0$ до $7$: $\{0, 1\}$, $\{0, 2\}$, $\{0, 3\}$, $\{0, 4\}$, $\{0, 5\}$, $\{0, 6\}$, $\{0, 7\}$.
Для $\{0, 1\}$: $\mathrm{mex}(\{0, 1\})$ = 2, $\mathrm{ultra}(\{0, 1\})=\{0 \oplus 1, 1 \oplus 1\} = \{1, 0\} = \{0, 1\}$, получается, что $A_1 = A_0$. Значит $\mathrm{mex}$-предел будет равен $2$.
Для всех остальных множеств $m_0 = \mathrm{mex}(A_0)=1$, для них при вычислении ultra происходит $\oplus$ с числом 0, поэтому $\mathrm{ultra}(A_0) = A_0$. Получается, для них $\mathrm{mex}$-предел равен $\mathrm{mex}(A_0) = 1$.