题面

题目分析

超级模板题:

多项式乘法

多项式求逆

多项式开根

多项式求导

多项式求积分

多项式求对数

多项式求自然对数为底的指数函数

多项式快速幂

代码实现

#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include<iomanip>
#include<cstdlib>
#define MAXN 0x7fffffff
typedef long long LL;
const int N=400005,mod=998244353;
using namespace std;
inline int Getint(){register int x=0,f=1;register char ch=getchar();while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}while(isdigit(ch)){x=x*10+ch-'0';ch=getchar();}return x*f;}
int ksm(int x,int k){int ret=1;while(k){if(k&1)ret=(LL)ret*x%mod;x=(LL)x*x%mod;k>>=1;}return ret;
}
void Der(int *f,int *g,int len){for(int i=0;i<len;i++)g[i]=(LL)f[i+1]*(i+1)%mod;g[len-1]=0;
}
void Int(int *f,int *g,int len){for(int i=1;i<len;i++)g[i]=(LL)f[i-1]*ksm(i,mod-2)%mod;g[0]=0;
}
void NTT(int *a,int x,int K){static int rev[N],lst;int n=1<<x;if(n!=lst){for(int i=0;i<n;i++)rev[i]=(rev[i>>1]>>1)|((i&1)<<x-1);lst=n;}for(int i=0;i<n;i++)if(i<rev[i])swap(a[i],a[rev[i]]);for(int i=1;i<n;i<<=1){int tmp=i<<1,wn=ksm(3,(mod-1)/tmp);if(K==-1)wn=ksm(wn,mod-2);for(int j=0;j<n;j+=tmp){int w=1;for(int k=0;k<i;k++,w=(LL)w*wn%mod){int x=a[j+k],y=(LL)w*a[i+j+k]%mod;a[j+k]=(x+y)%mod;a[i+j+k]=(x-y+mod)%mod;}}}if(K==-1){int inv=ksm(n,mod-2);for(int i=0;i<n;i++)a[i]=(LL)a[i]*inv%mod;}
}
void Inv(int *f,int *g,int len){static int A[N];if(len==1)return g[0]=ksm(f[0],mod-2),void();Inv(f,g,len>>1),copy(f,f+len,A);int x=log2(len<<1),n=1<<x;fill(A+len,A+n,0),fill(g+(len>>1),g+n,0);NTT(A,x,1),NTT(g,x,1);for(int i=0;i<n;i++)g[i]=(mod+2-(LL)A[i]*g[i]%mod)*g[i]%mod;NTT(g,x,-1),fill(g+len,g+n,0);
}
const int inv2=(mod+1)/2;
void Sqrt(int *f,int *g,int len){static int A[N],B[N];if(len==1)return g[0]=sqrt(f[0]),void();Sqrt(f,g,len>>1),Inv(g,B,len);copy(f,f+len,A);int x=log2(len<<1),n=1<<x;fill(A+len,A+n,0),fill(B+len,B+n,0),fill(g+(len>>1),g+n,0);NTT(A,x,1),NTT(B,x,1),NTT(g,x,1);for(int i=0;i<n;i++)g[i]=(g[i]+(LL)A[i]*B[i]%mod)%mod*inv2%mod;NTT(g,x,-1),fill(g+len,g+n,0);
}
void Ln(int *f,int *g,int len){static int A[N],B[N];Der(f,A,len),Inv(f,B,len);int x=log2(len<<1),n=1<<x;fill(A+len,A+n,0),fill(B+len,B+n,0);NTT(A,x,1),NTT(B,x,1);for(int i=0;i<n;i++)A[i]=(LL)A[i]*B[i]%mod;NTT(A,x,-1),Int(A,g,len);
}
void Exp(int *f,int *g,int len){static int A[N];if(len==1)return g[0]=1,void();int x=log2(len<<1),n=1<<x;Exp(f,g,len>>1);fill(A+len,A+n,0),fill(g+(len>>1),g+n,0);Ln(g,A,len);A[0]=(f[0]+1-A[0]+mod)%mod;for(int i=1;i<len;i++)A[i]=(f[i]-A[i]+mod)%mod;NTT(A,x,1),NTT(g,x,1);for(int i=0;i<n;i++)g[i]=(LL)g[i]*A[i]%mod;NTT(g,x,-1),fill(g+len,g+n,0);
}
void Pow(int *f,int len,int k){static int A[N];Ln(f,A,len);for(int i=0;i<len;i++)A[i]=(LL)A[i]*k%mod;Exp(A,f,len);
}
int a[N],b[N];
int main(){int n=Getint(),k=Getint();for(int i=0;i<n;i++)a[i]=(Getint()%mod+mod)%mod;int x=ceil(log2(n)),len=1<<x;Sqrt(a,b,len),Inv(b,a,len);Int(a,b,len),Exp(b,a,len);Inv(a,b,len),b[0]++;Ln(b,a,len),a[0]++;Pow(a,len,k),Der(a,b,n);for(int i=0;i<n;i++)cout<<b[i]<<' ';return 0;
}

转载于:https://www.cnblogs.com/Emiya-wjk/p/10025874.html

【HZOI2015】帕秋莉的超级多项式相关推荐

  1. [HZOI2015]帕秋莉的超级多项式

    题意 给你一个多项式 f(x) f ( x ) f(x) 设 g(x) g ( x ) g(x)满足 g(x)≡(1+ln(1+1exp(∫1f(x)√)))kmodxn g ( x ) ≡ ( 1 ...

  2. [COGS2189][HZOI 2015]帕秋莉的超级多项式-NTT-多项式求逆-多项式求ln-多项式开方-多项式求exp-多项式快速幂

    帕秋莉的超级多项式 [题目描述] 在幻想乡,帕秋莉·诺蕾姬(パチュリー·ノーレッジ)是以宅在图书馆闻名的魔法使. 其语文,数学,英语,物理,化学,生物,政治,历史,地理,哲♂学,无所不通晓. 今天,她 ...

  3. codevs 1376 帕秋莉•诺蕾姬

    codevs 1376 帕秋莉•诺蕾姬 题目描述 Description 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加 强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大 ...

  4. 帕秋莉·诺蕾姬 (Standard IO)

    Description 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成的字符串,我们考虑从'A'到'Z'分别表示 ...

  5. 2554. 【NOIP2011模拟9.7】帕秋莉·诺蕾姬 (Standard IO)

    2554. [NOIP2011模拟9.7]帕秋莉·诺蕾姬 (Standard IO) Description 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的 ...

  6. cogs 998. [東方S2] 帕秋莉·诺蕾姬

    二次联通门 : cogs 998. [東方S2] 帕秋莉·诺蕾姬 交上去后发现自己没上榜 就想着加点黑科技 把循环展开一下 结果WA了.. 万恶的姆Q /*cogs 998. [東方S2] 帕秋莉·诺 ...

  7. 【codevs 1376】帕秋莉·诺蕾姬

    37大天使震撼来袭 新服火爆开启!!! 不动的大图书馆 题目描述 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成 ...

  8. 【CS 1376】帕秋莉•诺蕾姬(Hash)

    [东方人物出没]qwq,hash可以搞得题目,对于换位没搞清楚,搞得真头疼qwq 题目描述 Description 在幻想乡,帕秋莉•诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法 ...

  9. JZOJ8.14(C组)帕秋莉·诺雷姬

    题目: 在幻想乡,帕秋莉·诺蕾姬是以宅在图书馆闻名的魔法使.这一天帕秋莉又在考虑如何加强魔法咒语的威力.帕秋莉的魔法咒语是一个仅有大写字母组成的字符串,我们考虑从'A'到'Z'分别表示0到25的数字, ...

最新文章

  1. chmod g+s 、chmod o+t 、chmod u+s:Linux高级权限管理
  2. linux删除目录排除,Linux中移动,复制,删除,打包排除某个目录或文件
  3. 离散数学关系的性质_关系和关系的性质| 离散数学
  4. linux临时挂载别的文件目录_Linux目录结构及开机流程详解
  5. 挂载镜像SD卡的FAT32文件系统分区到Linux中
  6. gsoap 实现 C/C++ 调用web service
  7. Javascript第六章JavaScript中构造器创建对象第二课
  8. Angular6 依赖注入
  9. nginx 增加stream_realip_module模块
  10. pspice学习杂记
  11. 运筹学——表上作业法
  12. 数据库系统的结构和组成
  13. Web报表系统葡萄城报表:报表设计
  14. Shell修改命令提示符
  15. 计算机组成原理题目透析(2)
  16. long long 型变量
  17. LTI系统的频域分析法
  18. 元宇宙项目的新黑马ComputeCoin(CCN)
  19. 王道论坛计算机考研机试指南怎么样,王道论坛计算机考研机试指南 二 日期类问题...
  20. 统计学“诺贝尔”奖——考普斯总统奖(COPSS Presidents' Award)

热门文章

  1. mysql tomcat 自动重连_基于tomcat+mysql的c/s模式下的系统自动更新
  2. tensorflow创建张量
  3. html5 键盘触发事件
  4. 二十九、基本分页存储管理的基本概念
  5. 【跨域报错解决方案】Access to XMLHttpRequest at ‘http://xxx.com/xxx‘ from origin ‘null‘ has been blocked by
  6. 大数据分布式集群搭建(5)
  7. android跨域 元素,Android之app作为服务器解决跨域问题
  8. linux下清理信号量,Linux下kill的信号量列表
  9. java if switch 效率_Java中 switch-case 如何优化?
  10. Nginx-出现-403-Forbidden