Description
定义新运算 “$!$” ,运算规则如下:
$a!b = a!(b-1) \times (a-1)!b ( a > 0,b > 0 )$
$a!b = 1 ( a = 0 )$
$a!b = a ( b = 0 )$
。
给你两个正整数 $n$ 和 $k$ ,现在请你求出 $n!k$ 的因子个数 $\mod (10^9+9)$ 。
$1\leq n\leq 1000,1 \leq k \leq 100$ 。
Solution
考虑使用 递推 来解题。
设 $f[i][j][k]$ 表示 $i ! j$ 分解质因数后的第 $k$ 个 质数 的指数的值,那显然有:
$f[i][j][k]=(f[i-1][j][k]+f[i][j-1][k])\mod(10^9+9)$
。
若一个数 $n=p_1^{k_1} \times p_2^{k_2} \times … \times p_m^{k_m}$ ,其中 $p_1$ ~ $p_m$ 均为质数,那么 $n$ 的因子个数为 $\prod_{i=1}^m (k_i+1)$ 。
所以我们可以得出答案等于 $(\prod_{i=1}^{n}(f[n][k][i]+1)) \mod;(10^9+9)$ 。
记得要中途取模!
时间复杂度 $O(nk)$,具体细节详见 代码 部分。
然后这道题目就做完了。
Code
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 |
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 |
|