loj#P4054. 「GDKOI-S 2024」鸡

    ID: 36884 传统题 3000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>子任务数学DP容斥原理组合计数递推2024GDKOI

「GDKOI-S 2024」鸡

题目描述

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

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

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

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

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

输入格式

共一行,三个数,表示 n,m,MODn, m, MOD

输出格式

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

3 1 1000000007
6
4 2 1000000007
47
20 24 1000000007
141754844
123 234 1000000009
141754844
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(10%10\%):n,m5n, m \leq 5
  • Subtask 2(15%15\%):n300n \leq 300m=1m = 1
  • Subtask 3(25%25\%):n300n \leq 300m5m\leq 5
  • Subtask 4(20%20\%):n,m50n, m \leq 50
  • Subtask 5(15%15\%):n,m300n, m \leq 300
  • Subtask 6(15%15\%):无特殊限制。