题目描述
次の条件を満たす数列の組 (A0,A1,...,AN) としてありうるものの個数を M で割ったあまりを求めてください。
- 全ての i(0≤ i≤ N) に対し、Ai は 1 以上 K 以下の整数からなる長さ i の数列である
- 全ての i(1≤ i≤ N) に対し、Ai−1 は Ai の部分列である。すなわち、ある 1≤ xi≤ i が存在し、Ai の xi 文字目を取り除いてできる数列が Ai−1 に一致する
- 全ての i(1≤ i≤ N) に対し、Ai は辞書順で Ai−1 より大きい
输入格式
入力は以下の形式で標準入力から与えられる。
N K M
输出格式
数列の組 (A0,A1,...,AN) としてありうるものの個数を M で割ったあまりを出力せよ。
题目大意
给定 n, k, m , 问有多少个序列组 (A0,A1,…,An) 满足:序列 Ai 的元素个数为 i ; 所有元素都在 [1,k] 内; ∀i∈[0,n) , Ai 是 Ai+1 的子序列且 Ai 的字典序小于 Ai+1.
输出在 modm 意义下的答案.
2 2 100
5
4 3 999999999
358
150 150 998244353
186248260
提示
制約
- 1 ≤ N,K ≤ 300
- 2 ≤ M ≤ 109
- N,K,M は整数である
Sample Explanation 1
以下の 5 つの組が条件を満たします。 - (),(1),(1,1) - (),(1),(1,2) - (),(1),(2,1) - (),(2),(2,1) - (),(2),(2,2)