#AGC024E. [AGC024E] Sequence Growing Hard

[AGC024E] Sequence Growing Hard

题目描述

次の条件を満たす数列の組 (A0,A1,...,AN) (A_0,A_1,...,A_N) としてありうるものの個数を M M で割ったあまりを求めてください。

  • 全ての i(0 i N) i(0\leq\ i\leq\ N) に対し、Ai A_i 1 1 以上 K K 以下の整数からなる長さ i i の数列である
  • 全ての i(1 i N) i(1\leq\ i\leq\ N) に対し、Ai1 A_{i-1} Ai A_i の部分列である。すなわち、ある 1 xi i 1\leq\ x_i\leq\ i が存在し、Ai A_i xi x_i 文字目を取り除いてできる数列が Ai1 A_{i-1} に一致する
  • 全ての i(1 i N) i(1\leq\ i\leq\ N) に対し、Ai A_i は辞書順で Ai1 A_{i-1} より大きい

输入格式

入力は以下の形式で標準入力から与えられる。

N N K K M M

输出格式

数列の組 (A0,A1,...,AN) (A_0,A_1,...,A_N) としてありうるものの個数を M M で割ったあまりを出力せよ。

题目大意

给定 nn, kk, mm , 问有多少个序列组 (A0,A1,,An)(A_0,A_1,…,A_n) 满足:序列 AiA_i 的元素个数为 ii ; 所有元素都在 [1,k][1,k] 内; i[0,n)\forall i\in[0,n) , AiA_iAi+1A_{i+1} 的子序列且 AiA_i 的字典序小于 Ai+1A_{i+1}.

输出在 modm\bmod m 意义下的答案.

2 2 100
5
4 3 999999999
358
150 150 998244353
186248260

提示

制約

  • 1  N,K  300 1\ \leq\ N,K\ \leq\ 300
  • 2  M  109 2\ \leq\ M\ \leq\ 10^9
  • N,K,M N,K,M は整数である

Sample Explanation 1

以下の 5 5 つの組が条件を満たします。 - (),(1),(1,1) (),(1),(1,1) - (),(1),(1,2) (),(1),(1,2) - (),(1),(2,1) (),(1),(2,1) - (),(2),(2,1) (),(2),(2,1) - (),(2),(2,2) (),(2),(2,2)