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

题目描述

Solution

这题是[Tjoi2016&Heoi2016]求和的前置技能啊……

我似乎直接跳过这题,去做应用了QAQQAQQAQ。

Code

#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <string>
#include <cstring>
#include <ctime>
#include <cassert>
#include <string.h>
//#include <unordered_set>
//#include <unordered_map>
//#include <bits/stdc++.h>#define MP(A,B) make_pair(A,B)
#define PB(A) push_back(A)
#define SIZE(A) ((int)A.size())
#define LEN(A) ((int)A.length())
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define fi first
#define se secondusing namespace std;template<typename T>inline bool upmin(T &x,T y) { return y<x?x=y,1:0; }
template<typename T>inline bool upmax(T &x,T y) { return x<y?x=y,1:0; }typedef long long ll;
typedef unsigned long long ull;
typedef long double lod;
typedef pair<int,int> PR;
typedef vector<int> VI;const lod eps=1e-11;
const lod pi=acos(-1);
const int oo=1<<30;
const ll loo=1ll<<62;
const int mods=167772161;
const int G=3;
const int Gi=(mods+1)/G;
const int MAXN=600005;
const int INF=0x3f3f3f3f;//1061109567
/*--------------------------------------------------------------------*/
inline int read()
{int f=1,x=0; char c=getchar();while (c<'0'||c>'9') { if (c=='-') f=-1; c=getchar(); }while (c>='0'&&c<='9') { x=(x<<3)+(x<<1)+(c^48); c=getchar(); }return x*f;
}
int f[MAXN],g[MAXN],rev[MAXN],Limit,L;
int quick_pow(int x,int y)
{int ret=1;for (;y;y>>=1){if (y&1) ret=1ll*ret*x%mods;x=1ll*x*x%mods;}return ret;
}
int upd(int x,int y){ return x+y>=mods?x+y-mods:x+y; }
void Number_Theoretic_Transform(int *A,int type)
{for (int i=0;i<Limit;i++) if (i<rev[i]) swap(A[i],A[rev[i]]);for (int mid=1;mid<Limit;mid<<=1){int Wn=quick_pow(type==1?G:Gi,(mods-1)/(mid<<1));for (int j=0;j<Limit;j+=(mid<<1))for (int k=j,w=1;k<j+mid;w=1ll*w*Wn%mods,k++){int x=A[k],y=1ll*w*A[k+mid]%mods;A[k]=upd(x,y),A[k+mid]=upd(x,mods-y);}}
}
int main()
{int n=read();f[0]=1; for (int i=1;i<=n;i++) f[i]=1ll*f[i-1]*i%mods;f[n]=quick_pow(f[n],mods-2);for (int i=n-1;i>=0;i--) f[i]=1ll*f[i+1]*(i+1)%mods;for (int i=0;i<=n;i++){g[i]=(i&1)?mods-f[i]:f[i];f[i]=1ll*f[i]*quick_pow(i,n)%mods;
//      cout<<i<<":"<<f[i]<<" "<<g[i]<<endl;}Limit=1,L=0;while (Limit<=n<<1) Limit<<=1,L++; for (int i=1;i<Limit;i++) rev[i]=(rev[i>>1]>>1)|((i&1)<<(L-1));Number_Theoretic_Transform(f,1);Number_Theoretic_Transform(g,1);for (int i=0;i<=Limit;i++) f[i]=1ll*f[i]*g[i]%mods;Number_Theoretic_Transform(f,-1);int invLimit=quick_pow(Limit,mods-2);for (int i=0;i<=n;i++) printf("%d ",1ll*f[i]*invLimit%mods);return 0;
}

P5395 【模板】第二类斯特林数·行相关推荐

  1. 「Luogu5395」【模板】第二类斯特林数·行

    「Luogu5395」[模板]第二类斯特林数·行 problem Solution 一句话题意:求\(_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}\) 根据第二类斯 ...

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

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

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

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

  4. 1847 奇怪的数学题(杜教筛 + Min_25 + 第二类斯特林数)

    1847 奇怪的数学题 推式子 ∑i=1n∑j=1nsgcd(i,j)k∑d=1nsgcd(d)k∑i=1nd∑j=1nd[gcd(i,j)=1]∑d=1nsgcd(d)k(2∑i=1ndϕ(i)−1 ...

  5. 合理放球(递推之第二类斯特林数 C++)

    合理放球 总时间限制: 1000ms 内存限制: 65536kB 描述 n个各不相同球放入m个相同的盒子里,球全部放完后,要求最后没有空盒!求不同的放法总数. 输入 一行两个数n和m n表示球数,m表 ...

  6. [学习笔记]第一类/第二类斯特林数

    前置知识 · 组合数学基础 · 容斥原理 · 生成函数 · FFT/NTT · 多项式exp,多项式ln,多项式快速幂,多项式平移 一些规定 · 下降幂 xn‾=∏i=1n(x−i+1)x^{\und ...

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

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

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

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

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

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

最新文章

  1. Ubuntu安装Anaconda
  2. linux 域名 都访问了 哪些路由,Ngnix管理域名路由
  3. C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)
  4. c语言中条件编译相关的预编译指令
  5. 北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!
  6. php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
  7. mvc crud_Spring MVC3 Hibernate CRUD示例应用程序
  8. [vue] vue怎么改变插入模板的分隔符?
  9. steam一键授权工具_半个东的时间让你省了一个亿 Steam免费游戏一键领取
  10. IEnumerable接口
  11. Material Design学习之 Dialog(顺便把前两天AppBarLayout没讲的部分提一提)
  12. RoR vs. Java
  13. jflash合并bin文件及hex文件
  14. 用冰封服务器安装系统,用冰封PE来安装windows纯净版系统
  15. B/S网页在线版仓库管理软件的意义何在
  16. 甘超波:NLP五步觉察法
  17. 2019最新 《播布客鸟哥的Linux私房菜教程》
  18. 虚幻引擎4初探(UE4)
  19. TikTok搬运视频怎么做,搬运怎样的视频最好
  20. 静态网站的搭建(Windows server2003)

热门文章

  1. 如何隐晦地表达“滚”?
  2. 有趣又好玩的圆外旋轮心形线
  3. 资料分享 | 教程与开发手册资料分享来袭
  4. 从小害怕数学的他,却成为了科普数学教育的数学家
  5. 技术人必备的碎片化时间学习工具
  6. python join_python join 和 split的常用使用方法
  7. 你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司
  8. antd request 通过jsessionid传参数_Umi-request源码阅读
  9. android.mk 翻译,翻译ANDROID-MK.TXT
  10. 抖音ai智能机器人挂机_电销秘诀 电销企业难以拒绝的AI智能电销机器人