Codeforces Round 934 (Div. 1) |
---|
Закончено |
Это сложная версия задачи. Единственное различие между двумя версиями — ограничение на $$$n$$$. Вы можете делать взломы, только если обе версии задачи решены.
Массив $$$b$$$ из $$$m$$$ целых неотрицательных чисел считается хорошим, если все элементы $$$b$$$ можно сделать равными $$$0$$$ с помощью применения следующей операции несколько (возможно, ноль) раз:
Вам даны три целых положительных числа $$$n$$$, $$$k$$$ и простое число $$$p$$$.
Среди всех $$$(k+1)^n$$$ массивов длины $$$n$$$, таких, что $$$0 \leq a_i \leq k$$$ для всех $$$1 \leq i \leq n$$$, посчитайте количество хороших массивов.
Поскольку число может быть очень большим, от вас требуется найти его только по модулю $$$p$$$.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \leq t \leq 10^3$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит три целых положительных числа $$$n$$$, $$$k$$$ и $$$p$$$ ($$$3 \leq n \leq 3000$$$, $$$1 \leq k \leq n$$$, $$$10^8 < p < 10^9$$$) — длина массива $$$a$$$, верхняя граница на элементы $$$a$$$ и модуль $$$p$$$.
Гарантируется, что сумма $$$n^2$$$ по всем наборам входных данных не превосходит $$$10^7$$$, а $$$p$$$ является простым.
Для каждого набора входных данных в новой строке выведите количество хороших массивов по модулю $$$p$$$.
43 1 9982448534 1 9982443533 2 998244353343 343 998244353
4 7 10 456615865
В первом наборе входных данных $$$4$$$ хорошими массивами $$$a$$$ являются:
Название |
---|