[BZOJ4555 TJOI2016 HEOI2016 求和]

​ 第一篇博客,请大家多多关照。(鞠躬

BZOJ4555 TJOI2016 HEOI2016 求和

题意:

​ 给定一个正整数\(n\)\(1\leqq n \leqq100000\)),求:
\[ \begin{align*} f(n)=\sum_{i=0}^n\sum_{j=0}^i \begin{Bmatrix}i\\j\end{Bmatrix}\times2^j\times(j!) \end{align*} \]

题解:

​ 第二类斯特林数公式题,题目中很良心地给了我们第二类斯特林数的递推公式:
\[ \begin{align*} \begin{Bmatrix}i\\j\end{Bmatrix}=j\times \begin{Bmatrix}i-1\\j\end{Bmatrix}+\begin{Bmatrix}i-1\\j-1\end{Bmatrix} \end{align*},1\leqq j\leqq i-1\\ \begin{Bmatrix}i\\i\end{Bmatrix}=[i\geqq0] \]
​ 于是我们愉快地用上面的公式,于是我们愉快地T掉。

​ 所以,我们应该考虑有没有一种能让我们在\(O(logn)\)内求出我们需要的每一项第二类斯特林数的方法。

​ 有,我们可以用容斥定理求出斯特林数的通项公式(我并不会,是背的):
\[ \begin{align*} \begin{Bmatrix}n\\m\end{Bmatrix}&=\frac{1}{m!}\sum_{k=0}^m\dbinom{m}{k}(m-k)^n(-1)^k\\ &=\frac{1}{m!}\sum_{k=0}^m\frac{m!}{k!(m-k)!}(m-k)^n(-1)^k\\ &=\sum_{k=0}^m\frac{1}{k!}\frac{(m-k)^n}{(m-k)!}(-1)^k \end{align*} \]
​ 带入原式中:
\[ \begin{align*} f(n)&=\sum_{i=0}^n\sum_{j=0}^i \begin{Bmatrix}i\\j\end{Bmatrix}\times2^j\times(j!)\\ \because当j>i时,\begin{Bmatrix}i\\j\end{Bmatrix}=0\\&=\sum_{j=0}^n2^j\times(j!)\sum_{i=0}^n\sum_{k=0}^j\frac{(-1)^k}{k!}\frac{(j-k)^i}{(j-k)!}\\ &=\sum_{j=0}^n2^j\times(j!)\sum_{k=0}^j\frac{(-1)^k}{k!}\sum_{i=0}^n\frac{(j-k)^i}{(j-k)!} \end{align*} \]
​ 出现了卷积形式,记\(A(x)=\sum_{k=0}^x\frac{1}{k!}\)\(B(x)=\sum_{i=0}^n\frac{x^i}{x!}\)

​ 预处理\(2^j\)\(j!\),用ntt处理\(\sum_{j=0}^n\sum_{i+k=j}A(i)\times B(k)\)

​ 时间复杂度:\(O(nlogn)\)

转载于:https://www.cnblogs.com/JackyhhJuRuo/p/8846939.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值