博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【模板】NTT
阅读量:6564 次
发布时间:2019-06-24

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

\(dalao\)那里扒了个板过来

const int G=3, P=(119<<23)+1;//998244353int n, m, l, r[Maxn], lim=1, f[Maxn], g[Maxn];int pow(int x, int k){int res=1; while(k){if(k&1) res=1ll*res*x%P; x=1ll*x*x%P; k >>= 1;} return res;}void NTT(int *A, int tp){    for(int i=0; i < lim; i++) if(i < r[i]) swap(A[i], A[r[i]]);    int gn, g, x, y;    for(int mid=1, R=mid<<1 ; mid < lim; mid <<= 1){        gn=pow(G, (P-1)/(mid<<1));        for(int j=0; j < lim; j+=R){ g=1;            for(int k=0; k < mid; k++, g=1ll*g*gn%P)                 x=A[j+k], y=1ll*g*A[j+k+mid]%P, A[j+k]=(x+y)%P, A[j+k+mid]=(x-y+P)%P;        }    }    if(tp == 1) return ;    int inv=pow(lim, P-2); reverse(A+1, A+lim);    for(int i=0; i < lim; i++) A[i]=1ll*A[i]*inv%P;}void solve(){    n=read(); m=read();    for(int i=0; i <= n; i++) f[i]=read(); for(int i=0; i <= m; i++) g[i]=read();    while(lim <= n+m) lim<<=1, l++; for(int i=0; i < lim; i++) r[i]=r[i>>1]>>1|((i&1)<

转载于:https://www.cnblogs.com/zerolt/p/9308665.html

你可能感兴趣的文章
前沿技术解密——VirtualDOM
查看>>
jvm调优
查看>>
Leetcode系列-Search in Rotated Sorted Array
查看>>
matlab对图像加入噪声的方法
查看>>
html转图片
查看>>
num 26
查看>>
主机名
查看>>
操作系统之进程管理
查看>>
三、数据库查询补充
查看>>
Chrome调试javacript禁止缓存
查看>>
发现一个时隐时现的bug!
查看>>
RTEMS与通用操作系统的不同点总结
查看>>
linux网络编程 基于TCP的程序开发
查看>>
学习进度第三周
查看>>
float 浮动详解
查看>>
php中time()与$_SERVER[REQUEST_TIME]用法区别
查看>>
truncate table
查看>>
跟我一起学习ASP.NET 4.5 MVC4.0 (转)
查看>>
我的vim(持续更新)
查看>>
关于UIP协议栈主动发送数据
查看>>