题目

[HEOI2016/TJOI2016]求和

关于斯特林数与反演的更多姿势\(\Longrightarrow\)点这里

做法

\[\begin{aligned}\\ Ans&=\sum\limits_{i=0}^n \sum\limits_{j=0}^i \begin{Bmatrix}i\\j\end{Bmatrix}2^j×j!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1\\ &=\sum\limits_{i=0}^n \sum\limits_{j=0}^n \begin{Bmatrix}i\\j\end{Bmatrix}2^j×j!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2\\ &=\sum\limits_{j=0}^n 2^j×j!\sum\limits_{i=0}^n \begin{Bmatrix}i\\j\end{Bmatrix}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3\\ &=\sum\limits_{j=0}^n 2^j×j!\sum\limits_{i=0}^n \sum\limits_{k=0}^j\frac{(-1)^k}{k!}\cdot\frac{(j-k)^i}{(j-k)!}~~~~~~~~~~~~~~~~~~~~4\\ &=\sum\limits_{j=0}^n 2^j×j!\sum\limits_{k=0}^j\frac{(-1)^k}{k!}\cdot\frac{ \sum\limits_{i=0}^n (j-k)^i}{(j-k)!}~~~~~~~~~~~~~~~~~~~~~~5\\ &=\sum\limits_{j=0}^n 2^j×j!\sum\limits_{k=0}^j\frac{(-1)^k}{k!}\cdot \frac{(j-k)^{n+1}-1}{(j-k-1)(j-k)!}~~~~~~~6\\ \end{aligned}\]

  • \(2:\begin{Bmatrix}i\\j\end{Bmatrix}=0(i>j)\)
  • \(3:\)移项
  • \(4:\)第二类斯特林的性质
  • \(5:\)移项化卷积
  • \(6:\)等比公式

总结

这题非常有意思,最后一步对于蒟蒻来说还是少见的,推到\(4\)谁都会,然后就无从下手了
以至于会从头考虑\(2^j×j!\)的性质,特别容易想偏

Code

#include<bits/stdc++.h>
typedef int LL;
typedef long long L;
const LL maxn=3e5+9,mod=998244353,g=3,_g=332748118;
inline LL Pow(LL base,LL b){LL ret(1);while(b){if(b&1) ret=(L)ret*base%mod; base=(L)base*base%mod; b>>=1;}return ret;
}
LL fac[maxn],fav[maxn],r[maxn],F[maxn],G[maxn],W[maxn];
inline void NTT(LL *a,LL n,LL type){for(LL i=0;i<n;++i) if(i<r[i]) std::swap(a[i],a[r[i]]);for(LL mid=1;mid<n;mid<<=1){LL wn(Pow(type?g:_g,(mod-1)/(mid<<1)));W[0]=1; for(LL i=1;i<mid;++i) W[i]=(L)W[i-1]*wn%mod;for(LL R=mid<<1,j=0;j<n;j+=R)for(LL k=0;k<mid;++k){LL x(a[j+k]),y((L)W[k]*a[j+mid+k]%mod);a[j+k]=x+y; if(a[j+k]>=mod) a[j+k]%=mod;a[j+mid+k]=x-y; if(a[j+mid+k]<0) a[j+mid+k]+=mod;}}
}
inline LL Fir(LL n){LL limit(1),len(0);while(limit<n){limit<<=1; ++len;}for(LL i=0;i<limit;++i) r[i]=(r[i>>1]>>1)|((i&1)<<len-1);return limit;
}
inline LL Solve_fg(LL n){for(LL i=0;i<=n;++i) F[i]=(L)(i&1?mod-1:1)*fav[i]%mod;for(LL i=0;i<=n;++i) G[i]=(L)(Pow(i,n+1)+mod-1)%mod*Pow(i-1<0?i+mod-1:i-1,mod-2)%mod*fav[i]%mod;G[1]=n+1;LL limit(Fir(n+1<<1));NTT(F,limit,1); NTT(G,limit,1);for(LL i=0;i<limit;++i) F[i]=(L)F[i]*G[i]%mod;NTT(F,limit,0);LL ty(Pow(limit,mod-2)); for(LL i=0;i<=n;++i) F[i]=(L)F[i]*ty%mod;LL ret(0);for(LL i=0;i<=n;++i) ret=(L)(ret+(L)Pow(2,i)*fac[i]%mod*F[i]%mod)%mod;return ret;
}
LL n;
int main(){scanf("%d",&n);fac[0]=fac[1]=1;for(LL i=2;i<=n;++i) fac[i]=(L)fac[i-1]*i%mod;fav[n]=Pow(fac[n],mod-2);for(LL i=n;i>=1;--i) fav[i-1]=(L)fav[i]*i%mod;printf("%d",Solve_fg(n));return 0;
}

转载于:https://www.cnblogs.com/y2823774827y/p/10709820.html

[HEOI2016/TJOI2016]求和(第二类斯特林数)相关推荐

  1. BZOJ 4555 Luogu P4091 [HEOI2016/TJOI2016]求和 (第二类斯特林数)

    题目链接 (lugou) https://www.luogu.org/problem/P4091 (bzoj) https://www.lydsy.com/JudgeOnline/problem.ph ...

  2. 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数

    出处0.0 用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O( ...

  3. P5395 【模板】第二类斯特林数·行

    P5395 [模板]第二类斯特林数·行 题目描述 Solution 这题是[Tjoi2016&Heoi2016]求和的前置技能啊-- 我似乎直接跳过这题,去做应用了QAQQAQQAQ. Cod ...

  4. 第一类斯特林数 / 第二类斯特林数 / 贝尔数 小结

    第一类斯特林数 有 nnn 个不同的小球,将它们串成 mmm 条项链,有多少种不同的方案? 第一类斯特林数的表示方法为 [nm]\left[\begin{matrix}n\\m\end{matrix} ...

  5. 第一类和第二类斯特林数

    第一类斯特林数 第一类斯特林数定义如下: \(s_1(n,k)\)表示\(n\)个元素组成\(k\)个圆排列的方案数. 其中\(n\)个元素的圆排列定义为\(n\)个元素围成一圈的排列,两个圆排列本质 ...

  6. 【组合数学】第一类,第二类斯特林数(Stirling),Bell数

    第一类斯特林数 定理: 第一类斯特林数S1(p,k)计数的是把p个对象排成k个非空循环排列的方法数. 证明:把上述定理叙述中的循环排列叫做圆圈 递推公式: S1(p,p)=1(p>=0),有p个 ...

  7. BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2159 是 hydro 的 BZOJ ...

  8. 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘

    题目链接:http://acm.xju.edu.cn/JudgeOnline/problem.php?id=1006 第二类斯特林数: 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的 ...

  9. 【CF961G】Partitions(第二类斯特林数)

    [CF961G]Partitions(第二类斯特林数) 题面 CodeForces 洛谷 题解 考虑每个数的贡献,显然每个数前面贡献的系数都是一样的. 枚举当前数所在的集合大小,所以前面的系数\(p\ ...

最新文章

  1. 计算机设备及网络建设使用情况,高校信息化网络基础设施建设状况对比
  2. php能调用easyui窗口,关于jQuery EasyUI window窗口使用实例详解
  3. mysql基础语法(常用)
  4. Java怎么查找字符串大写_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...
  5. 给大家推荐对Redis分析讲解比较详细的大牛
  6. php与mysql列表_PHP+Mysql+jQuery实现的查询和列表框选择
  7. ClassPathResource使用简介
  8. keil5ARM编译器改字体大小和颜色的方法
  9. python怎么导包_如何从python中的包导入所有函数?
  10. Net-DataGridView
  11. 3d打印机 模型图纸下载_如何在3D打印机上制作第一个3D模型
  12. @Trasactional 事务解读
  13. python处理excel数据
  14. 【渝粤教育】广东开放大学 建设工程法规 形成性考核 (32)
  15. Geek ? 什么是 Geek ? 谁是 Geek ?
  16. 圣光机大学计算机专业,25位师生顺利完成圣光机大学实习项目
  17. 计算机网络协议简介及英文简写
  18. 京东EB级全域大数据平台的演进与治理历程
  19. aistudio解压zip
  20. jenkins创建新用户_Jenkins凭据管理

热门文章

  1. ftp ---- vsftpd安装卸载
  2. 使用计算机管理文件教后反思,五年级信息技术下册《文件和文件夹》教学设计和教学反思...
  3. r语言 fourth entry_第四篇 语言学习的自然顺序
  4. 对List集合中的对象进行按某个属性排序
  5. SpringBoot注解验证参数
  6. C++ 构造函数与析构函数
  7. windbg sx命令与简单应用
  8. JavaScript(九):JavaScript中的内置对象
  9. shell脚本通过ping命令来获取平均延时
  10. Linux下eclipse编译C/C++程序遇到 undefined reference to `pthread_create'的异常解决办法