[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)\)
[BZOJ4555 TJOI2016 HEOI2016 求和]的更多相关文章
- [BZOJ4555][TJOI2016&HEOI2016]求和(分治FFT)
4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 525 Solved: 418[Sub ...
- Bzoj4555: [Tjoi2016&Heoi2016]求和
题面 Bzoj Sol 推柿子 因为当\(j>i\)时\(S(i, j)=0\),所以有 \[\sum_{i=0}^{n}\sum_{j=0}^{n}S(i, j)2^j(j!)\] 枚举\(j ...
- BZOJ4555 [Tjoi2016&Heoi2016]求和 【第二类斯特林数 + NTT】
题目 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) + ...
- 【BZOJ】4555: [Tjoi2016&Heoi2016]求和 排列组合+多项式求逆 或 斯特林数+NTT
[题意]给定n,求Σi=0~nΣj=1~i s(i,j)*2^j*j!,n<=10^5. [算法]生成函数+排列组合+多项式求逆 [题解]参考: [BZOJ4555][Tjoi2016& ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 [分治FFT 组合计数 | 多项式求逆]
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林 ...
- BZOJ 4555: [Tjoi2016&Heoi2016]求和 [FFT 组合计数 容斥原理]
4555: [Tjoi2016&Heoi2016]求和 题意:求\[ \sum_{i=0}^n \sum_{j=0}^i S(i,j)\cdot 2^j\cdot j! \\ S是第二类斯特林 ...
- 【BZOJ 4555】 4555: [Tjoi2016&Heoi2016]求和 (NTT)
4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 315 Solved: 252 Des ...
- bzoj 4555 [Tjoi2016&Heoi2016]求和 NTT 第二类斯特林数 等比数列求和优化
[Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 679 Solved: 534[Submit][S ...
- 【bzoj4555】[Tjoi2016&Heoi2016]求和 NTT
题目描述 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) ...
随机推荐
- PUBG
题目描述 最近,喜爱ACM的PBY同学沉迷吃鸡,无法自拔,于是又来到了熟悉的ERANGEL.经过一番搜寻,PBY同学准备动身前往安全区,但是,地图中埋伏了许多LYB,PBY的枪法很差,希望你能够帮他找 ...
- Bootstrap modal.js 源码分析
/* ======================================================================== * Bootstrap: modal.js v3 ...
- git 和github 关联
创建本地仓库: 查看本地仓库配置信息: 如果没有配置,则进行配置: git config --global user.name "这里换上你的用户名" git config --g ...
- SPOJ8222 NSUBSTR - Substrings 后缀自动机_动态规划
讲起来不是特别好讲.总之,如果 $dp[i+1]>=dp[i]$,故$dp[i]=max(dp[i],dp[i+1])$ Code: #include <cstdio> #inclu ...
- NodeJS学习笔记 (28)流操作-stream(ok)
模块概览 nodejs的核心模块,基本上都是stream的的实例,比如process.stdout.http.clientRequest. 对于大部分的nodejs开发者来说,平常并不会直接用到str ...
- maven+spring-data-jpa环境搭建
转自http://www.cnblogs.com/007sx/p/5658194.html 首先看一下项目结构: 所用到的jar(pom.xml): <project xmlns="h ...
- zookeeper 性能测试
zookeeper压力测试:性能对比(3个节点,5个节点,7个节点 创建节点.删除节点.设置节点数据.读取节点数据性能及并发性能) 测试结果如下: 五次测试三节点结果: 创建100W节点用时:15.0 ...
- 【JavaScript】分秒倒计时器
一.基本目标 在JavaScript设计一个分秒倒计时器,一旦时间完毕使button变成不可点击状态 详细效果例如以下图.为了说明问题.调成每50毫秒也就是每0.05跳一次表, 真正使用的时候,把wi ...
- OpenCV【2】---读取png图片显示到QT label上的问题
问题一: 操作图片test.png是一个365x365的PNG图片 通过OpenCV自带的GUI显示出来图像是没问题的,例如以下操作代码所看到的: QStringfileName=QFileD ...
- git commit template
https://www.zhihu.com/question/27462267/answer/204658544 https://gist.github.com/adeekshith/cd4c95a0 ...