Это простая версия задачи. Разница между двумя версиями заключается в определении детерминированной max-кучи, ограничении на время и ограничениях на n и t. Вы можете совершать взломы только в том случае, если решены обе версии задачи..
Рассмотрим полное бинарное дерево размером 2n−1, с вершинами, пронумерованными от 1 до 2n−1, и корнем в 1. Для каждой вершины v (1≤v≤2n−1−1) вершина 2v является ее левым ребенком, а вершина 2v+1 — ее правым ребенком. Каждой вершине v также присвоено значение av.
Определим операцию pop следующим образом:
Мы говорим, что операция pop является детерминированной, если существует единственный способ выполнить такую операцию. Другими словами, a2v≠a2v+1 выполняется на каждом шаге операции.
Бинарное дерево называется max-кучей, если для каждой вершины v (1≤v≤2n−1−1) выполняется av≥a2v и av≥a2v+1.
Максимальная куча является детерминированной, если операция pop детерминирована для кучи, когда мы выполняем ее в первый раз.
Изначально av:=0 для каждой вершины v (1≤v≤2n−1), и ваша цель — посчитать количество различных детерминированных max-куч, которые можно получить в результате применения следующей операции add ровно k раз:
Две кучи считаются разными, если есть вершина, которая имеет разные значения в этих кучах.
Поскольку ответ может быть очень большим, выведите его по модулю p.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит одно целое число t (1≤t≤500) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых числа n,k,p (1≤n,k≤500, 108≤p≤109, p — простое).
Гарантируется, что сумма n и сумма k по всем наборам входных данных не превосходят 500.
Для каждого набора входных данных выведите единственную строку, содержащую целое число: количество различных детерминированных max-куч, которое можно получить в результате применения вышеупомянутой операции 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], а поскольку a2=a3, мы можем выбрать любой из них при выполнении первой операции pop, поэтому такая куча не является детерминированной max-кучей.
А если мы выберем v=2, у нас будет a=[1,1,0], то при выполнении первой операции pop произойдет следующее:
Так как первая операция pop детерминирована, то это детерминированная max-куча. Также, если мы выберем v=3, то a будет детерминированной max-кучей, так что ответ — 2.