BZOJ

Luogu

\[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)*2^j*j!
\]

其中\(S(i,j)\)是第二类斯特林数

\(n\le10^5\),模\(998244353\)

sol

所以说后面两项到底是干什么的

把\(j\)提到前面去

\[f(n)=\sum_{j=0}^{n}2^j*j!\sum_{i=0}^{n}S(i,j)
\]

(\(i\)从\(0\)开始是没有问题的,因为当\(i<j\)的时候\(S(i,j)=0\))

我们知道

\[S(i,j)=\frac{1}{j!}\sum_{k=0}^{j}(-1)^k\binom{j}{k}(j-k)^i
\]

那么

\[\sum_{i=0}^{n}S(i,j)=\sum_{i=0}^{j}\frac{1}{j!}\sum_{k=0}^{j}(-1)^k\binom{j}{k}(j-k)^i\\=\frac{1}{j!}\sum_{k=0}^{j}(-1)^k\binom{j}{k}\sum_{i=0}^{n}(j-k)^i
\]

发现后面的其实就是一个等比数列求和

直接用公式

\[\sum_{i=0}^{n}q^i=\frac{q^{n+1}-1}{q-1}
\]

注意特判\(p=0\)和\(p=1\)(注意\(0^0=1\))

然后直接上卷积啊

code

#include<cstdio>
#include<algorithm>
using namespace std;
const int _ = 400005;
const int mod = 998244353;
int gi()
{
int x=0,w=1;char ch=getchar();
while ((ch<'0'||ch>'9')&&ch!='-') ch=getchar();
if (ch=='-') w=0,ch=getchar();
while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
return w?x:-x;
}
int fastpow(int a,int b)
{
int res=1;
while (b) {if (b&1) res=1ll*res*a%mod;a=1ll*a*a%mod;b>>=1;}
return res;
}
int n,N,jc[_],inv[_],a[_],b[_],rev[_],l,ans;
void NTT(int *P,int opt)
{
for (int i=0;i<N;++i) if (i>rev[i]) swap(P[i],P[rev[i]]);
for (int i=1;i<N;i<<=1)
{
int W=fastpow(3,(mod-1)/(i<<1));
if (opt==-1) W=fastpow(W,mod-2);
for (int j=0,p=i<<1;j<N;j+=p)
{
int w=1;
for (int k=0;k<i;++k,w=1ll*w*W%mod)
{
int x=P[j+k],y=1ll*P[j+k+i]*w%mod;
P[j+k]=(x+y)%mod;P[j+k+i]=(x-y+mod)%mod;
}
}
}
if (opt==-1)
{
int Inv=fastpow(N,mod-2);
for (int i=0;i<N;++i) P[i]=1ll*P[i]*Inv%mod;
}
}
int main()
{
n=gi();
jc[0]=inv[0]=1;
for (int i=1;i<=n;++i) jc[i]=1ll*jc[i-1]*i%mod;
inv[n]=fastpow(jc[n],mod-2);
for (int i=n-1;i;--i) inv[i]=1ll*inv[i+1]*(i+1)%mod;
for (int i=0;i<=n;++i) a[i]=i&1?mod-inv[i]:inv[i];
b[0]=1;b[1]=n+1;
for (int i=2;i<=n;++i) b[i]=1ll*(fastpow(i,n+1)-1+mod)%mod*fastpow(i-1,mod-2)%mod*inv[i]%mod;
for (N=1;N<=2*n;N<<=1) ++l;--l;
for (int i=0;i<N;++i) rev[i]=(rev[i>>1]>>1)|((i&1)<<l);
NTT(a,1);NTT(b,1);
for (int i=0;i<N;++i) a[i]=1ll*a[i]*b[i]%mod;
NTT(a,-1);
for (int i=0,j=1;i<=n;++i,j=(j<<1)%mod) (ans+=1ll*a[i]*jc[i]%mod*j%mod)%=mod;
printf("%d\n",ans);
return 0;
}

[TJOI2016&&HEOI2016]求和的更多相关文章

  1. 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是第二类斯特林 ...

  2. 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是第二类斯特林 ...

  3. 【BZOJ】4555: [Tjoi2016&Heoi2016]求和 排列组合+多项式求逆 或 斯特林数+NTT

    [题意]给定n,求Σi=0~nΣj=1~i s(i,j)*2^j*j!,n<=10^5. [算法]生成函数+排列组合+多项式求逆 [题解]参考: [BZOJ4555][Tjoi2016& ...

  4. 【BZOJ 4555】 4555: [Tjoi2016&Heoi2016]求和 (NTT)

    4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 315  Solved: 252 Des ...

  5. [BZOJ4555][TJOI2016&HEOI2016]求和(分治FFT)

    4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 525  Solved: 418[Sub ...

  6. bzoj 4555 [Tjoi2016&Heoi2016]求和 NTT 第二类斯特林数 等比数列求和优化

    [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 679  Solved: 534[Submit][S ...

  7. [BZOJ4555 TJOI2016 HEOI2016 求和]

    ​ 第一篇博客,请大家多多关照.(鞠躬 BZOJ4555 TJOI2016 HEOI2016 求和 题意: ​ 给定一个正整数\(n\)(\(1\leqq n \leqq100000\)),求: \[ ...

  8. BZOJ 4555: [Tjoi2016&Heoi2016]求和 (NTT + 第二类斯特林数)

    题意 给你一个数 \(n\) 求这样一个函数的值 : \[\displaystyle f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i} \begin{Bmatrix} i \\ j ...

  9. [BZOJ 4555][Tjoi2016&Heoi2016]求和

    题意 给定 $n$ , 求下式的值: $$ f(n)= \sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix}i\\ j\end{Bmatrix}\times 2^j\time ...

随机推荐

  1. win7无法启用网络发现

    1. Windows+R 2. 指令services.msc 3.找到以下服务,设为自动并开启服务 Function Discovery Resource Publication SSDP Disco ...

  2. [翻译] 编写高性能 .NET 代码--第二章 GC -- 将长生命周期对象和大对象池化

    将长生命周期对象和大对象池化 请记住最开始说的原则:对象要么立即回收要么一直存在.它们要么在0代被回收,要么在2代里一直存在.有些对象本质是静态的,生命周期从它们被创建开始,到程序停止才会结束.其它对 ...

  3. 想想我们能拿HoloLens 做点什么

    作为一个微软员工,顿时感觉好了很多. 中午吃饭同事们热烈讨论这东东: 1. 看电视 2. 办公 3. 用HoloLens 玩3d 游戏.满公园跑. 4. 看书 5. 开车的时候,实时显示地图 6. 一 ...

  4. JBoss AS7(Application Server 7)的Standalone模式和Domain模式

    JBoss AS7(Application Server 7)支持两种引导模式:standalone和domain(域). Standalone模式对于很多应用,并不需要domain管理能力,JBos ...

  5. ubuntu下boost编译安装

    ubuntu下boost编译安装 boost 安装 1.依赖安装 apt-get install mpi-default-dev libicu-dev python-dev python3-dev l ...

  6. springMvc学习笔记一

    什么是springmvc  springmvc就是spring框架的一个模块 所以springmvc与spring之间无需通过中间整合层进行整合的. springmvc又是基于mvc的web框架 mv ...

  7. mysql4 - 高级操作

    一.联结(使用 where(早) 和 join(晚) 都可以完成联结) 1.1 从 Teacher 表和 Profession 表中,查询出老师的名字和所属专业的名称. SELECT t.`l_nam ...

  8. PHP文件头BOM头问题

    前几天我们公司服务器出现了一个离奇的问题,服务器与本地文件代码完全一致,本地运行正常,到了测试环境服务器之后,各种问题一个又一个浮现,先是后台验证码不显示,以为是session写入失败,又是怀疑gd库 ...

  9. CodeForces-740B Alyona and flowers

    题目要求选择一些花的集合,如果暴力去枚举每种选择方法明显是不行的.换种方式考虑:每一个集合都能为最后的答案做出要么正的.要么负的.要么0贡献,先把所有集合能做出的贡献预处理,然后从m个集合里面选择贡献 ...

  10. 最短路径问题(Floyd-Warshall模板)

    #include<bits/stdc++.h> using namespace std; int n; int x,y; ][]; ][]; int m,s,t; int main() { ...