P5395 【模板】第二类斯特林数·行
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 【模板】第二类斯特林数·行相关推荐
- 「Luogu5395」【模板】第二类斯特林数·行
「Luogu5395」[模板]第二类斯特林数·行 problem Solution 一句话题意:求\(_{i=0}^n\begin{Bmatrix}n\\i\end{Bmatrix}\) 根据第二类斯 ...
- 第一类斯特林数 / 第二类斯特林数 / 贝尔数 小结
第一类斯特林数 有 nnn 个不同的小球,将它们串成 mmm 条项链,有多少种不同的方案? 第一类斯特林数的表示方法为 [nm]\left[\begin{matrix}n\\m\end{matrix} ...
- BZOJ 2159 「国家集训队」Crash 的文明世界(第二类斯特林数,换根DP)【BZOJ计划】
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 题目链接 https://hydro.ac/d/bzoj/p/2159 是 hydro 的 BZOJ ...
- 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 ...
- 合理放球(递推之第二类斯特林数 C++)
合理放球 总时间限制: 1000ms 内存限制: 65536kB 描述 n个各不相同球放入m个相同的盒子里,球全部放完后,要求最后没有空盒!求不同的放法总数. 输入 一行两个数n和m n表示球数,m表 ...
- [学习笔记]第一类/第二类斯特林数
前置知识 · 组合数学基础 · 容斥原理 · 生成函数 · FFT/NTT · 多项式exp,多项式ln,多项式快速幂,多项式平移 一些规定 · 下降幂 xn‾=∏i=1n(x−i+1)x^{\und ...
- 【BZOJ 4555】[Tjoi2016Heoi2016]求和 多项式求逆/NTT+第二类斯特林数
出处0.0 用到第二类斯特林数的性质,做法好像很多,我打的是直接ntt,由第二类斯特林数的容斥公式可以推出,我们可以对于每一个i,来一次ntt求出他与所有j组成的第二类斯特林数的值,这个时候我们是O( ...
- 【组合数学】第一类,第二类斯特林数(Stirling),Bell数
第一类斯特林数 定理: 第一类斯特林数S1(p,k)计数的是把p个对象排成k个非空循环排列的方法数. 证明:把上述定理叙述中的循环排列叫做圆圈 递推公式: S1(p,p)=1(p>=0),有p个 ...
- 新疆大学(新大)OJ xju 1006: 比赛排名 第二类斯特林数+阶乘
题目链接:http://acm.xju.edu.cn/JudgeOnline/problem.php?id=1006 第二类斯特林数: 第二类Stirling数实际上是集合的一个拆分,表示将n个不同的 ...
最新文章
- Ubuntu安装Anaconda
- linux 域名 都访问了 哪些路由,Ngnix管理域名路由
- C语言signal()函数(通过设置一个函数(回调函数)来处理捕获到异常信号时需要执行的操作)
- c语言中条件编译相关的预编译指令
- 北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!
- php表格单元格怎么实现排序,javascript实现对表格元素进行排序操作
- mvc crud_Spring MVC3 Hibernate CRUD示例应用程序
- [vue] vue怎么改变插入模板的分隔符?
- steam一键授权工具_半个东的时间让你省了一个亿 Steam免费游戏一键领取
- IEnumerable接口
- Material Design学习之 Dialog(顺便把前两天AppBarLayout没讲的部分提一提)
- RoR vs. Java
- jflash合并bin文件及hex文件
- 用冰封服务器安装系统,用冰封PE来安装windows纯净版系统
- B/S网页在线版仓库管理软件的意义何在
- 甘超波:NLP五步觉察法
- 2019最新 《播布客鸟哥的Linux私房菜教程》
- 虚幻引擎4初探(UE4)
- TikTok搬运视频怎么做,搬运怎样的视频最好
- 静态网站的搭建(Windows server2003)
热门文章
- 如何隐晦地表达“滚”?
- 有趣又好玩的圆外旋轮心形线
- 资料分享 | 教程与开发手册资料分享来袭
- 从小害怕数学的他,却成为了科普数学教育的数学家
- 技术人必备的碎片化时间学习工具
- python join_python join 和 split的常用使用方法
- 你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司
- antd request 通过jsessionid传参数_Umi-request源码阅读
- android.mk 翻译,翻译ANDROID-MK.TXT
- 抖音ai智能机器人挂机_电销秘诀 电销企业难以拒绝的AI智能电销机器人