#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#define ll long long
#define N 300005
using namespace std;
const int ni = ;
const int p = ;
ll pw(ll x,int y)
{
ll lst=;
while(y)
{
if(y&)lst=(lst*x)%p;
y>>=;
x=(x*x)%p;
}
return lst;
}
int n,m;
int c[N],a[N],b[N],R[N];
int invb[N];
int ji[N],jie[N],nini[N];
int tmp[N];
void fft(int *a,int n,int f)
{
for(int i=;i<n;i++)if(R[i]>i)swap(a[i],a[R[i]]);
for(int i=;i<n;i<<=)
{
int wn=pw(ni,((p-)/(i<<)*f+p-)%(p-));
for(int j=;j<n;j+=(i<<))
{
int w=;
for(int k=;k<i;k++,w=((ll)w*wn)%p)
{
int x=a[j+k];int y=((ll)a[j+i+k]*w)%p;
a[j+k]=(x+y)%p;a[j+k+i]=(x-y+p)%p;
}
}
}
if(f==-)
{
ll nii=pw(n,p-);
for(int i=;i<n;i++)a[i]=(ll)a[i]*nii%p;
}
return ;
}
void get_inv(int *a,int *b,int n)
{
if(n==)
{
b[]=pw(a[],p-);
return ;
}
get_inv(a,b,n>>);
for(int i=;i<n;i++)tmp[i]=a[i];
int l=;int nn=;
while(nn<n<<)nn<<=,l++;
for(int i=;i<nn;i++)R[i]=(R[i>>]>>)|((i&)<<(l-));
fft(tmp,nn,);fft(b,nn,);
for(int i=;i<nn;i++)
b[i]=((ll)b[i]*(-(ll)tmp[i]*b[i]%p+p))%p;
fft(b,nn,-);
memset(b+n,,sizeof(int)*n);
}
int main()
{
scanf("%d",&n);
int l=;
for(m=n,n=;n<=m;n<<=)l++;
nini[]=jie[]=ji[]=;
for(int i=;i<n;i++)jie[i]=((ll)jie[i-]*i)%p;
for(int i=;i<n;i++)
b[i]=pw(,((ll)i*(i-)>>)%(p-))*pw(jie[i],p-)%p;
for(int i=;i<n;i++)
c[i]=pw(,((ll)i*(i-)>>)%(p-))*pw(jie[i-],p-)%p;
get_inv(b,invb,n);
l++;int tp=n<<;
for(int i=;i<tp;i++)R[i]=(R[i>>]>>)|((i&)<<(l-));
fft(invb,tp,);
fft(c,tp,);
for(int i=;i<tp;i++)a[i]=(ll)invb[i]*c[i]%p;
fft(a,tp,-);
printf("%d\n",(ll)a[m]*jie[m-]%p);
return ;
}

NTT+多项式求逆的更多相关文章

  1. 【bzoj3456】城市规划 容斥原理+NTT+多项式求逆

    题目描述 求出n个点的简单(无重边无自环)无向连通图数目mod 1004535809(479 * 2 ^ 21 + 1). 输入 仅一行一个整数n(<=130000) 输出 仅一行一个整数, 为 ...

  2. NTT+多项式求逆+多项式开方(BZOJ3625)

    定义多项式$h(x)$的每一项系数$h_i$,为i在c[1]~c[n]中的出现次数. 定义多项式$f(x)$的每一项系数$f_i$,为权值为i的方案数. 通过简单的分析我们可以发现:$f(x)=\fr ...

  3. BZOJ1042 HAOI2008硬币购物(任意模数NTT+多项式求逆+生成函数/容斥原理+动态规划)

    第一眼生成函数.四个等比数列形式的多项式相乘,可以化成四个分式.其中分母部分是固定的,可以多项式求逆预处理出来.而分子部分由于项数很少,询问时2^4算一下贡献就好了.这个思路比较直观.只是常数巨大,以 ...

  4. 【BZOJ 3456】 3456: 城市规划 (NTT+多项式求逆)

    3456: 城市规划 Time Limit: 40 Sec  Memory Limit: 256 MBSubmit: 658  Solved: 364 Description 刚刚解决完电力网络的问题 ...

  5. BZOJ 4555 [Tjoi2016&Heoi2016]求和 ——分治 NTT 多项式求逆

    不想多说了,看网上的题解吧,我大概说下思路. 首先考察Stirling的意义,然后求出递推式,变成卷积的形式. 然后发现贡献是一定的,我们可以分治+NTT. 也可以直接求逆(我不会啊啊啊啊啊) #in ...

  6. BZOJ 3456 城市规划 ( NTT + 多项式求逆 )

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=3456 题意: 求出\(n\)个点的简单(无重边无自环)无向连通图的个数.(\(n< ...

  7. [BZOJ3456]城市规划:DP+NTT+多项式求逆

    写在前面的话 昨天听吕老板讲课,数数题感觉十分的神仙. 于是,ErkkiErkko这个小蒟蒻也要去学数数题了. 分析 Miskcoo orz 带标号无向连通图计数. \(f(x)\)表示\(x\)个点 ...

  8. P4233-射命丸文的笔记【NTT,多项式求逆】

    正题 题目链接:https://www.luogu.com.cn/problem/P4233 题目大意 随机选择一条有哈密顿回路的\(n\)个点的竞赛图,求选出图的哈密顿回路的期望个数. 对于每个\( ...

  9. BZOJ 3625 [Codeforces Round #250]小朋友和二叉树 ——NTT 多项式求逆 多项式开根

    生成函数又有奇妙的性质. $F(x)=C(x)*F(x)*F(x)+1$ 然后大力解方程,得到一个带根号的式子. 多项式开根有解只与常数项有关. 发现两个解只有一个是成立的. 然后多项式开根.求逆. ...

  10. luoguP4512 【模板】多项式除法 NTT+多项式求逆+多项式除法

    Code: #include<bits/stdc++.h> #define maxn 300000 #define ll long long #define MOD 998244353 # ...

随机推荐

  1. spring-framework-reference(5.1.1.RELEASE)中文版——Core部分

    前言 最近在学习Spring框架,在学习的同时,借助有道翻译,整理翻译了部分文档,由于尚在学习当中,所以该篇文章将会定时更新,目标在一个月左右时间翻译完全部版本. 虽然大部分内容为翻译,但是其中可能会 ...

  2. 国密算法--Openssl 实现国密算法(基础介绍和产生秘钥对)

    国密非对称加密算法 又称sm2,它是采取了ECC(曲线加密算法)中的一条固定的曲线,实际上就是ECC算法. 因为openssl里面不包含sm2算法,所以就要重新进行封装-. - 对于ECC算法我就不介 ...

  3. [转载]GB2312简体中文编码表

    编码表源地址:http://www.knowsky.com/resource/gb2312tbl.htm编码在线查询:http://www.qqxiuzi.cn/bianma/zifuji.phpGB ...

  4. umount命令详解

    基础命令学习目录首页                                    umount 用来卸载设备 -a:卸除/etc/mtab中记录的所有文件系统: -h:显示帮助: -n:卸除 ...

  5. Currency Exchange 货币兑换 Bellman-Ford SPFA 判正权回路

    Description Several currency exchange points are working in our city. Let us suppose that each point ...

  6. Thunder-Beta发布-事后诸葛亮会议-2017秋-软件工程第十一次作业

    小组名称:Thunder项目名称:爱阅APP小组成员:王航 李传康 翟宇豪 邹双黛 苗威 宋雨 胡佑蓉 杨梓瑞一.设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有 ...

  7. 在js中保存数据

    localStorage: localStorage.setItem("key", "value"); localStorage.getItem("k ...

  8. NABC for Teamproject

     “教育是一个社会发展的支柱, 你和我能看到并理解这个博客, 教育功不可没. 高等教育的形式并不是一成不变的, 高等教育一直在演进.”邹欣老师在博客上如此写道.为了迎合信息化时代的特色,网络上的知识传 ...

  9. HDU 3811 Permutation 状压dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3811 Permutation Time Limit: 6000/3000 MS (Java/Othe ...

  10. User survey(用户调研)

    郑文武——小学二年级学生 姓名 郑文武  性别.年龄 男.9岁                      职业 学生 收入 父母给的零花钱 知识层次和能力 会使用手机 生活/工作情况 努力学习但数学成 ...