#CSP1137. 排列 (permutation)

    ID: 4508 Type: Default File IO: permutation 2000ms 256MiB Tried: 23 Accepted: 1 Difficulty: 10 Uploaded By: Tags>CSP-S模拟暑期集训

排列 (permutation)

题目描述

小 Y 最近在研究组合数学,他学会了如何枚举排列。

小 Z 最近在研究数论,他学会了求最大公约数。

于是小 Y 和小 Z 联手出了一个有趣的题目:

有多少个长度为 nn 且任意相邻两个数的最大公约数都不为 kk 的排列?

然而他们并不会做这个题,所以请你来帮帮他们吧!

输入格式

permutation.in 文件读入数据。

​一行两个整数 n,kn,k ,由一个空格隔开,含义如上文题面所示。

输出格式

输出到 permutation.out 文件。

​一个整数,表示满足条件的排列数量对 998244353998244353 取模后的结果。

样例

3 2
6

满足条件的排列如下:$\{1,2,3\},\{1,3,2\},\{2,1,3\},\{2,3,1\},\{3,1,2\},\{3,2,1\}$ ,共 66 种。

2999 391
691177047

数据范围

对于全部测试数据,满足 1n3000,1nk101\leq n\leq 3000,1\leq \frac{n}{k}\leq10

子任务 分数 附加限制
11 1010 n10n\leq 10
22   1010   n20n\leq 20
33 1010 nk<2\frac{n}{k} < 2
44 3030 n100,nk5n\leq 100,\frac{n}{k}\leq 5
55 4040 无附加限制