Codeforces Round 967 (Div. 2) |
---|
Закончено |
Это простая версия задачи. Разница между двумя версиями заключается в определении детерминированной max-кучи, ограничении на время и ограничениях на $$$n$$$ и $$$t$$$. Вы можете совершать взломы только в том случае, если решены обе версии задачи..
Рассмотрим полное бинарное дерево размером $$$2^n - 1$$$, с вершинами, пронумерованными от $$$1$$$ до $$$2^n-1$$$, и корнем в $$$1$$$. Для каждой вершины $$$v$$$ ($$$1 \le v \le 2^{n - 1} - 1$$$) вершина $$$2v$$$ является ее левым ребенком, а вершина $$$2v + 1$$$ — ее правым ребенком. Каждой вершине $$$v$$$ также присвоено значение $$$a_v$$$.
Определим операцию $$$\mathrm{pop}$$$ следующим образом:
Мы говорим, что операция $$$\mathrm{pop}$$$ является детерминированной, если существует единственный способ выполнить такую операцию. Другими словами, $$$a_{2v} \neq a_{2v + 1}$$$ выполняется на каждом шаге операции.
Бинарное дерево называется max-кучей, если для каждой вершины $$$v$$$ ($$$1 \le v \le 2^{n - 1} - 1$$$) выполняется $$$a_v \ge a_{2v}$$$ и $$$a_v \ge a_{2v + 1}$$$.
Максимальная куча является детерминированной, если операция $$$\mathrm{pop}$$$ детерминирована для кучи, когда мы выполняем ее в первый раз.
Изначально $$$a_v := 0$$$ для каждой вершины $$$v$$$ ($$$1 \le v \le 2^n - 1$$$), и ваша цель — посчитать количество различных детерминированных max-куч, которые можно получить в результате применения следующей операции $$$\mathrm{add}$$$ ровно $$$k$$$ раз:
Две кучи считаются разными, если есть вершина, которая имеет разные значения в этих кучах.
Поскольку ответ может быть очень большим, выведите его по модулю $$$p$$$.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 500$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа $$$n, k, p$$$ ($$$1 \le n, k \le 500$$$, $$$10^8 \le p \le 10^9$$$, $$$p$$$ — простое).
Гарантируется, что сумма $$$n$$$ и сумма $$$k$$$ по всем наборам входных данных не превосходят $$$500$$$.
Для каждого набора входных данных выведите единственную строку, содержащую целое число: количество различных детерминированных max-куч, которое можно получить в результате применения вышеупомянутой операции $$$\mathrm{add}$$$ ровно $$$k$$$ раз, по модулю $$$p$$$.
71 13 9982443532 1 9982443533 2 9982448533 3 9982443533 4 1000000374 2 1000000394 3 100000037
1 2 12 52 124 32 304
1500 500 100000007
76297230
687 63 10000003777 77 100000039100 200 998244353200 100 99824435332 59 9982448531 1 998244353
26831232 94573603 37147649 847564946 727060898 1
Для первого набора входных данных существует только один способ сгенерировать $$$a$$$, и такая последовательность является детерминированной max-кучей, поэтому ответ — $$$1$$$.
Для второго набора входных данных, если мы выберем $$$v = 1$$$ и выполним операцию, у нас будет $$$a = [1, 0, 0]$$$, а поскольку $$$a_2 = a_3$$$, мы можем выбрать любой из них при выполнении первой операции $$$\mathrm{pop}$$$, поэтому такая куча не является детерминированной max-кучей.
А если мы выберем $$$v = 2$$$, у нас будет $$$a = [1, 1, 0]$$$, то при выполнении первой операции $$$\mathrm{pop}$$$ произойдет следующее:
Так как первая операция $$$\mathrm{pop}$$$ детерминирована, то это детерминированная max-куча. Также, если мы выберем $$$v = 3$$$, то $$$a$$$ будет детерминированной max-кучей, так что ответ — $$$2$$$.
Название |
---|