D. 统计个数

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

给定 n,k,p ,求有多少有序 p 元组 (a_1,a_2,\cdots,a_p) 满足

  • \forall i \in [1,p] a_i\in [1,n]

  • \forall i\in [1,p) \operatorname{popcount}(a_i\oplus a_{i+1})=k

  • \forall i,j\in[1,p],i\neq j a_i\neq a_j

答案对 998244353 取模。


  • 其中 \operatorname{popcount}(x) 表示 x 在二进制表达下 1 的个数。
  • \oplus 表示按位异或操作。
  • 两个有序 p 元组 (a_1,a_2,\dots,a_p) (b_1,b_2,\dots,b_p) 不同当且仅当存在 i\in[1,p] 使得 a_i\neq b_i

输入格式

输入格式

一行三个正整数 n,k,p

输出格式

输出格式

一行一个数,表示答案。

样例

样例 #1

样例输入 #1

5 1 2

样例输出 #1

8

样例 #2

样例输入 #2

6 1 3

样例输出 #2

12

样例 #3

样例输入 #3

7 1 4

样例输出 #3

48

样例 #4

样例输入 #4

8 3 5

样例输出 #4

6

样例 #5

样例输入 #5

9 2 5

样例输出 #5

72

样例 #6

样例输入 #6

114 3 3

样例输出 #6

106624

样例 #7

样例输入 #7

514 3 4

样例输出 #7

296097032

样例 #8

样例输入 #8

1000 7 5

样例输出 #8

569405945

样例 #9

样例输入 #9

1000 7 1

样例输出 #9

1000

数据范围与提示

对于所有测试数据,保证 1\leq n \leq 1000 1\leq k\leq \lfloor \log_2 n\rfloor 1 \leq p \leq 5

每个测试点的具体限制见下表:

测试点编号 n\leq p =
1 1000 1
2 \sim 3 2
4 \sim 5 300 3
6 \sim 12 1000
13 \sim 15 4
16 \sim 21 300 5
22 \sim 25 1000