#L4054. 「GDKOI-S 2024」鸡

    ID: 5940 传统题 3000ms 512MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>递推组合数学容斥原理动态规划状态设计优化记忆化搜索

「GDKOI-S 2024」鸡

题目描述

对于一个非负整数序列 aa,定义它对应的独立集序列 f(a)f(a)

假设将 aia_i 改为 00,此时选出若干个两两不相邻的数使得它们的和最大,则 f(a)if(a)_i 表示和的最大值。

现在给定 nn, mm,求有多少个长度为 bb 的非负整数序列 bb 满足以下条件:

存在至少一个长度为 nn,值域为 [0,m][0, m] 的非负整数序列 aa 使得 f(a)=bf(a) = b

答案对给定的质数 MODMOD 取模。


输入格式

共一行,三个数,表示 nn, mm, MODMOD


输出格式

共一行,一个数,表示答案。


样例 1

输入

3 1 1000000007

输出

6

样例 2

输入

4 2 1000000007

输出

47

样例 3

输入

20 24 1000000007

输出

141754844

样例 4

输入

123 234 1000000009

输出

141754844

样例 5

输入

1234 2345 1004535809

输出

576196526

数据范围与提示

本题使用子任务捆绑测试。

对于 100%100\% 的数据,1n,m3×1031 \leq n, m \leq 3 \times 10^3n2n \geq 2109<MOD<1.01×10910^9 < MOD < 1.01 \times 10^9MODMOD 为质数。

Subtask 数据范围 分值
1 n,m5n, m \leq 5 10%
2 n300n \leq 300m=1m = 1 15%
3 n300n \leq 300m5m \leq 5 25%
4 n,m50n, m \leq 50 20%
5 n,m300n, m \leq 300 15%
6 无特殊限制