博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2019.01.04 洛谷 P4721 【模板】分治 FFT
阅读量:4553 次
发布时间:2019-06-08

本文共 1565 字,大约阅读时间需要 5 分钟。

如同题目所描述的一样,这是一道板题。
题意简述:给你一个数组g1,2,...ng_{1,2,...n}g1,2,...n并定义f0=1,fi=∑j=1ifi−jgjf_0=1,f_i=\sum_{j=1}^if_{i-j}g_jf0=1,fi=j=1ifijgj,让你求f0,1,...,nf_{0,1,...,n}f0,1,...,n


代码 :

#include
#define ri register int#define add(a,b) ((a)+(b)>=mod?(a)+(b)-mod:(a)+(b))#define dec(a,b) ((a)>=(b)?(a)-(b):(a)-(b)+mod)#define mul(a,b) ((ll)(a)*(b)%mod)using namespace std;inline int read(){
int ans=0; char ch=getchar(); while(!isdigit(ch))ch=getchar(); while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar(); return ans;}typedef long long ll;const int N=1e5+5,mod=998244353;int n,lim,tim;vector
A,B,pos;inline void init(const int&up){
lim=1,tim=0; while(lim<=up*2)lim<<=1,++tim; A.resize(lim),B.resize(lim),pos.resize(lim),pos[0]=0; for(ri i=0;i
>1]>>1)|((i&1)<<(tim-1));}inline int ksm(int a,int p){
int ret=1;for(;p;p>>=1,a=mul(a,a))if(p&1)ret=mul(ret,a);return ret;}inline void ntt(vector
&a,const int&type){
for(ri i=0;i
>=1){ wn=ksm(typ,mult); for(ri j=0,len=mid<<1;j
a; poly(int k=0,int x=0){ a.resize(k+1),a[k]=x;} inline poly extend(const int&k){ poly ret=*this;return ret.a.resize(k+1),ret;} inline int deg()const{ return a.size()-1;} inline int&operator[](const int&k){ return a[k];} inline const int&operator[](const int&k)const{ return a[k];}};inline void cdqFFT(poly&a,poly&b,int l,int r){ if(l==r)return; int mid=l+r>>1; cdqFFT(a,b,l,mid),init(2*(r-l+1)); for(ri i=0;i

转载于:https://www.cnblogs.com/ldxcaicai/p/10367783.html

你可能感兴趣的文章
ExtJS下拉树
查看>>
android 调用系统相机录像并保存
查看>>
BW系统表的命名规则
查看>>
Asp.Net在IE10下出现_doPostBack未定义的解决办法 LinkButton
查看>>
《CLR via C#》Part2之Chapter5 基元类型、引用类型和值类型(一)
查看>>
1-9 RHEL7-文件权限管理
查看>>
apache服务器安装
查看>>
Search a 2D Matrix
查看>>
文件解析漏洞
查看>>
弹性成像的一些术语
查看>>
作业2
查看>>
vim 笔记
查看>>
MySQL的基本使用命令
查看>>
output 参数在存储过程中的用法
查看>>
大数加法和乘法(高精度)
查看>>
利用SynchronizationContext.Current在线程间同步上下文
查看>>
python各种类型转换-int,str,char,float,ord,hex,oct等
查看>>
sublime Text3 快捷键
查看>>
19 年书单
查看>>
不变模式
查看>>