Java教程

[HEOI2016/TJOI2016]求和

本文主要是介绍[HEOI2016/TJOI2016]求和,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题意 :设 \(S\) 是第二类斯特林数, 求

\(\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{i}S(i,j) \times 2^j \times j!\)

因为有 \(m^n =\sum\limits_{i=0}^{m}\dbinom m i i! \times S(n, i)\)

设 \(f(x) = x^n\), \(g(x) = x! \times S(n, x)\), 根据二项式反演 :

\(f(m) = \sum\limits_{i=0}^{m}\dbinom m i g(i) \Rightarrow g(m) = \sum\limits_{i=0}^{m}(-1)^{m-i}\dbinom m i f_i\)

即 \(m! \times S(n, m) = \sum\limits_{i=0}^{m}(-1)^{m-i}\dbinom m i i^n\)

\(S(n, m) = \sum\limits_{i=0}^{m}\dfrac{(-1)^{m-i}}{(m-i)!} \times \dfrac{i^n}{i!}\)

有了这个公式后, 带回原式 :

\(=\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{n}S(i, j) \times 2^j \times j!\)

\(=\sum\limits_{j=0}^{n}2^j \times j! \sum\limits_{i=0}^{n}\sum\limits_{k=0}^{j} \dfrac{(-1)^{j-k}}{(j-k)!} \times \dfrac{k^n}{k!}\)

\(=\sum\limits_{j=0}^{n}2^j \times j! \times \sum\limits_{k=0}^{j}\dfrac{(-1)^{j-k}}{(j-k)!} \times \sum\limits_{i=0}^{n} \dfrac{k^n}{k!}\)

设 \(s(k) = \dfrac{\sum\limits_{i=0}^{n}k^n}{k!}\), 分子可以由等比数列求和公式算出, 则

\(=\sum\limits_{j=0}^{n}2^j \times j! \times \sum\limits_{k=0}^{j}\dfrac{(-1)^{j-k}}{(j-k)!} \times s(k)\), 显然是一个卷积的形式, 直接 NTT 即可。

注意 \(k = 1\) 时需要特判。

这篇关于[HEOI2016/TJOI2016]求和的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!