[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) ...
随机推荐
- [JSOI2007]文本生成器(AC自动机+DP)
题意 给你n个串.问有多少长度为m的串使得这n个串至少在其中出现过一次.输出答案膜10007意义下的结果. (n<=100,每个串的长度<=100) 题解 在AC自动机上跑DP. 用到一个 ...
- HDU——T 2647 Reward
http://acm.hdu.edu.cn/showproblem.php?pid=2647 Time Limit: 2000/1000 MS (Java/Others) Memory Limi ...
- OpenCv 人脸检測的学习
近期公司要组织开发分享,可是自己还是新手真的不知道分享啥了,然后看了看前段时间研究过OpenCv,那么就分享他把. openCv就不介绍了,说下人脸检測.事实上是通过openCv里边已经训练好的xml ...
- Design Pattern Adaptor 适配器设计模式
适配器设计模式是为了要使用一个旧的接口,或许这个接口非常难用,或许是和新的更新的接口不兼容,所以须要设计一个适配器类,然后就能够让新旧的接口都统一. 就是这种一个图: watermark/2/text ...
- 基于express+redis高速实现实时在线用户数统计
作者:zhanhailiang 日期:2014-11-09 本文将介绍怎样基于express+redis高速实现实时在线用户数统计. 1. 在github.com上创建项目uv-tj.将其同步到本地: ...
- TRIZ系列-创新原理-7-嵌套原理
原理表述例如以下: 1)把一个物体嵌入另外一个物体.然后将这两个物体再嵌入第三个物体,以此类推. 这个原理又叫俄罗斯娃原理,目的是在不影响原有功能的情况下: A) 在须要时.能够降低系统的体积和便于携 ...
- 优化数据页面(20)——1:n的数据关系
设计要点:优化数据页面.界面设计.美化exce 阿金:那一对多的关系-- 秀秀:不是:n结构么? 阿金:嗯,这俺知道.俺特别喜欢这样的格式,那样显得非常上档次! 秀秀:俺也喜欢. 由于页面上有空白,认 ...
- SQL Search
Press TAB to expand wildcard tab键之后,会自动展开,直接枚举表中所有的字段 根据名字查找存储过程,发现找不到 原因是,本地是一个备份库.服务器上通过sql source ...
- AtCoder Beginner Contest 067 D - Fennec VS. Snuke
D - Fennec VS. Snuke Time limit : 2sec / Memory limit : 256MB Score : 400 points Problem Statement F ...
- 如何查看 Linux 中所有正在运行的服务
有许多方法和工具可以查看 Linux 中所有正在运行的服务.大多数管理员会在 System V(SysV)初始化系统中使用 service service-name status 或 /etc/ini ...