p5349 幂
2024-08-29 08:40:01
分析
https://www.cnblogs.com/cjyyb/p/10822490.html
代码
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int g = ;
const int N = 2e5;
const int G = ;
const int mod = ;
int f[],a[],b[],fac[],inv[],val,A[],R,r[];
inline int pw(int x,int p){int res=;while(p){if(p&)res=res*x%mod;x=x*x%mod;p>>=;}return res;}
inline void ntt(int a[],int opt,int n){
int i,j,k,inv=pw(n,mod-),now,wn,w,p,q;
for(i=;i<n;i++)if(i<r[i])swap(a[i],a[r[i]]);
for(i=;i<n;i<<=){
now=(opt==?g:G),wn=pw(now,(mod-)/(i<<));
for(j=;j<n;j+=(i<<))
for(k=,w=;k<i;k++,w=w*wn%mod)
p=a[j+k],q=a[i+j+k]*w%mod,a[j+k]=(p+q)%mod,a[i+j+k]=(p-q+mod)%mod;
}
if(opt==-)for(i=;i<n;i++)a[i]=a[i]*inv%mod;
}
inline void go_to_work(int le,int ri){
if(le==ri)return;
int i,j,k,n,m=ri-le,len=,mid=(le+ri)>>;
go_to_work(le,mid);for(n=;n<=(m+)*;n<<=)len++;
for(i=;i<n;i++)r[i]=((r[i>>]>>)|((i&)<<(len-)));
for(i=;i<n;i++)a[i]=b[i]=;for(i=;i<=mid-le;i++)a[i]=f[i+le];
for(i=;i<=m;i++)b[i]=val*inv[i]%mod;ntt(a,,n),ntt(b,,n);
for(i=;i<n;i++)a[i]=a[i]*b[i]%mod;ntt(a,-,n);
for(i=mid+;i<=ri;i++)f[i]=(f[i]+a[i-le])%mod;
go_to_work(mid+,ri);return; }
signed main(){
int n,i,j,k,Ans=;
scanf("%lld%lld",&n,&R);
f[]=pw((-R+mod)%mod,mod-);
for(i=;i<=n;i++)scanf("%lld",&A[i]);
fac[]=;for(i=;i<=N;i++)fac[i]=fac[i-]*i%mod;
inv[N]=pw(fac[N],mod-);for(i=N-;i>=;i--)inv[i]=inv[i+]*(i+)%mod;
val=R*pw((-R+mod)%mod,mod-)%mod;go_to_work(,n);
for(i=;i<=n;i++)Ans=(Ans+f[i]*A[i]%mod*fac[i]%mod)%mod;
printf("%lld\n",Ans);return ;
}
最新文章
- Redis初识、设计思想与一些学习资源推荐
- Bubble Cup 8 finals D. Tablecity (575D)
- Centos7 基本shell命令
- ruby 编译安装,gem国内源ruby.taobao.org
- Win Form程序线程点点
- CentOS 6.6 安装redmine
- DOM、Window对象操作
- python核心编程第六章练习6-13
- 微博API使用
- mysql 高级查询
- 非常好的在网页中显示pdf的方法
- 【mongoDB基础篇①】安装与常用操作语句
- oracle服务器端-登陆
- WPF 三态按钮(PNG贴图)
- [Codeforces 946G]Almost Increasing Array
- CSS _text-align:justify;实现两端对齐
- mapper代理方式开发
- poj1426_kuagnbin带你飞专题一
- Jquery 图片延迟加载技术
- eclipse:刪除空行