前言
这题算是我斯特林数的入门题,顺便安利大佬的博客,我是从这篇博客中学的斯特林数。
前置知识:
-
二项式定理:
[(a+b)^n=sum_{i=0}^n{dbinom ni a^ib^{n-i}} ag1 ] -
斯特林数相关知识:
-
斯特林数定义:
-
第一类斯特林数: 第一类斯特林数 (egin{bmatrix}n\mend{bmatrix}) 表示将 (n) 个不同元素划分为 (m) 个轮换的方案数。
-
第二类斯特林数: 第二类斯特林数 (egin{Bmatrix}n\mend{Bmatrix}) 表示把 (n) 个不同小球放入 (m) 个相同盒子,盒子不能空的方案数。
-
相关递推式:
[egin{bmatrix}n\mend{bmatrix}=egin{bmatrix}n-1\m-1end{bmatrix}+(n-1)egin{bmatrix}n-1\mend{bmatrix} ag2 ][egin{Bmatrix}n\mend{Bmatrix}=egin{Bmatrix}n-1\m-1end{Bmatrix}+megin{Bmatrix}n-1\mend{Bmatrix} ag3 ]
-
-
-
上升下降幂相关知识:
-
定义:(a^{ar{b}}=prod_{i=0}^{b-1}{(a+i)}) 称为上升幂,(a^{underline{b}}=prod_{i=0}^{b-1}{(a-i)}) 称为下降幂,而 (a^b) 称为普通幂。
-
普通幂与上升下降幂之间的转换:
[x^n=sum_{k=0}^n{egin{Bmatrix}n\kend{Bmatrix}x^{underline{k}}} ag4 ][x^{underline{n}}=sum_{k=0}^n{(-1)^{n-k}egin{bmatrix}n\kend{bmatrix}x^k} ag5 ][x^n=sum_{k=0}^n{(-1)^{n-k}egin{Bmatrix}n\kend{Bmatrix}x^{ar{k}}} ag6 ][x^{ar{k}}=sum_{k=0}^n{egin{bmatrix}n\kend{bmatrix}x^k} ag7 ] -
下降幂与组合数之间的关系:
[dbinom nm m^{underline{k}}=dbinom {n-k}{m-k}n^{underline{k}} ag 8 ]
-
题解
[egin{aligned}sum_{k=0}^n f(k) imes x^k imes dbinom n k&=sum_{k=0}^n{left(sum_{i=0}^m{a_ik^i}
ight)x^kdbinom nk} exttt{$ig($由定义$ig)$}\ & = sum_{k=0}^n{left(sum_{i=0}^m{a_isum_{j=0}^i{egin{Bmatrix}i\jend{Bmatrix}k^{underline{j}}}}
ight) x^kdbinom nk} exttt{$ig($由$\,(4)ig)$}\&=sum_{k=0}^n{left(sum_{j=0}^m{k^{underline{j}}sum_{i=0}^j{a_iegin{Bmatrix}i\jend{Bmatrix}}}
ight)x^kdbinom nk} exttt{$ig($交换求和顺序$ig)$}\&=sum_{j=0}^m{q_j}sum_{k=j}^n{x^kk^{underline{j}}dbinom nk} exttt{$igg($记$\,q_j=sum_{i=0}^j{a_i}egin{Bmatrix}i\jend{Bmatrix}igg)$}\&=sum_{j=0}^m{q_jsum_{k=j}^n{x^k}n^{underline{j}}dbinom {n-j}{k-j}} exttt{$ig($由$\,(8)ig)$}\&=sum_{j=0}^m{q_jx^{j}n^{underline{j}}sum_{k=0}^{n-j}{x^kdbinom {n-j}{k}}} exttt{$ig($提取公因式$ig)$}\&=sum_{j=0}^m{q_jx^jn^{underline{j}}(x+1)^{n-j}} exttt{$ig($由$(1)ig)$} end{aligned}
]
显然 ({q_j}) 可以在 (O(m^2)) 的时间内预处理出来,剩下的直接套上面的式子就可以 (O(mlog n)) 计算。
时间复杂度为 (O(m^2+mlog n)),空间复杂度为 (O(m^2))。