Description
求出所有长度为\(n\)的置换的轮换数之和的\(m\)次方,对\(1000000007\)取模。
多组(\(1\ldots 300\))询问,\(1\leq n\leq 10^5, 0\leq m\leq 300\)。
Solution
我们设\(x_i\)为置换\(i\)是否出现,那么答案就是\((\sum x_i)^m\)。
我们用第二类斯特林数把这个式子展开成下降幂,就得到了:\(\sum_{k = 0}^m\begin{Bmatrix}m\\k\end{Bmatrix}k!\binom{\sum x_i}{k}\)。换言之所有有某\(k\)个轮换同时出现的方案数会对答案做出\(\begin{Bmatrix}m\\k\end{Bmatrix}k!\)的贡献。
那么考虑怎么计算所有有某\(k\)个轮换同时出现的方案数。我们考虑怎么去去除不需要的轮换,注意到我们可以加上一个虚点\(n + 1\),然后把不需要的环顺次从右边断开,然后再顺次连上,最后和\(n + 1\)连上,这样的话我们就把这个方案数转化成了\(\begin{bmatrix}n + 1\\ k + 1\end{bmatrix}\)。
Code
1 |
|