单位根的定义就不说了。 显然有: \(\omega_n^k=\cos {2\pi k \over n}+i\sin {2\pi k \over n}\) 带入这个可以直接证得: \(\omega_{2n}^{2k}=\cos {2\pi \cdot 2k \over 2n}+i\sin {2\pi ...
转载
2021-07-12 21:52:00
67阅读
2评论
namespace NTT { const int g = 3; int power(int x, int t) { int ret = 1; for(; t; t >>= 1, x = 1LL * x * x % P) if(t & 1) ret = 1LL * ret * x % P; return ret; } void NTT(int *a, int len, int f) { int n
转载
2019-09-08 20:07:00
72阅读
2评论
NTT(快速数论变换)用到的各种素数及原根: https://blog.csdn.net/hnust_xx/article/details/76572828 NTT多项式乘法模板
原创
2021-08-05 10:28:20
223阅读
~~抄~~学了一下NTT,感觉写数学题更不虚一点了。。。 C++ include include include include include define LL long long int define Redge(u) for (int k = h[u],to; k; k = ed[k].nx
原创
2021-07-20 14:45:27
94阅读
把 gn=g^(phi(P)/n)/ 当成 wn 就行了记住 opt==-1时 要 reverse(x+1,x+1+lim)#include<cmath>#include<ctime>#include<cstdio>#i
原创
2023-07-07 13:44:09
29阅读
链接题意就是求给定一棵树求∑0n−1Wl∑∑[dist(i,j)==L]∗a[i]∗a[j]\sum_{0}^{n-1} W_l \sum\sum [dist(i,j)==L]*a[i]*
原创
2022-05-14 19:24:12
10000+阅读
任意模数$NTT$ 众所周知,为了满足单位根的性质,$NTT$需要质数模数,而且需要能写成$a2^{k} + 1$且$2^k \ge n$ 比较常用的有$998244353,1004535809,469762049$,这三个原根都是$3$ 如果要任意模数怎么办? $n$次多项式在模$m$下乘积,最终
原创
2021-07-20 13:45:57
150阅读
NTT学习笔记
转载
2018-12-06 17:36:00
49阅读
2评论
FFT NTT TNT 实现爆破的伟大之路。 FFT容易爆精度 这大家都知道所以在卷积之后要+0.5然后int强制转换。 有的时候题目中可以取模 但是我们FFT中带入的x是浮点型的 无法支持取模操作。 我们知道 取模是数论的内容。 那么 ~~老爹说过要用数论打败数论~~ 代替单位复根的就是原根了。所
转载
2020-01-03 22:07:00
549阅读
2评论
导数卷积有f(x)=∑i=0n−1ai×xi求g(x)=∑i=0n−1f(i)(x)f(n−i−1)(x)∑i=0n−1∑j=0n−1ai+j(i+j)!j!∑k=0n−1ak+(n−i−1)(k+(n−i−1))!k!设F(n)=an×n!我们单独求解g(x)的第m项,有gm=∑i=0n−1∑j=1d(F(i+j)∗F(n−i−1+d−j))×(1j!∗1(d−j)!)设H(n)=1n!有f(x) = \sum_{i = 0} ^{n - 1}a_i \times x ^ i\\求g(x) = \s
原创
2021-08-27 09:23:32
159阅读
贴板子啦…… FFT板子:luogu P3803 【模板】多项式乘法(FFT) #include<cstdio> #include<iostream> #include<cmath> #include<algorithm> #include<cstring> #include<cstdlib> #i
原创
2021-05-29 19:23:53
415阅读
也许更好的阅读体验Description\mathcal{Description}Description给你一个长度为nnn的数组aaa你会得到 qqq 条指令, 分两种:1 l r w1\ l\ r\ w1 l r w 表示把 l,l+1,…rl, l + 1,\ldots rl,l+1,…r 这段区间的每一个数 +w+w+w...
原创
2021-12-27 14:57:42
200阅读
// luogu-judger-enable-o2· /*( ntt 模板 luogu P3803 in: n , m 0,...,a[n] 0,...,b[m] example: 1 2 1 2 1 2 1 1 4 5 2 */ #include<iostream> #include<cstdio ...
转载
2021-07-23 14:43:00
107阅读
2评论
推出公式以后就可以
原创
2023-07-05 20:02:10
59阅读
写此篇只为加深印象。 1.FFT(快速傅里叶变换) 参考 对于求解$F(n+m)=g(n)*h(m)$的系数该怎么办? 首先要了解如何能表示一个多项式? 一系数表示法:这是我们通常在用的方法,比如一个二次函数$f(x)=x2+2x+1$ 二点值表示法:对于一个k次多项式,我们可以用k+1个点确定这个 ...
转载
2021-07-28 16:37:00
338阅读
2评论
网上相关博客不少,这里给自己留个带点注释的模板,以后要是忘了作提醒用。 以洛谷3803多项式乘法裸题为例。 FFT: NTT是用模域取代了复数域,性质相同只是换了单位根,所以板子基本相同。我这两个相比NTT确实比FFT快一点的:
原创
2021-07-15 15:31:23
274阅读
As we know, Rikka is poor at math. Yuta is worrying about this situation, so he gives Rikka some math tasks to practice. There is one of them: Yuta ha
转载
2018-10-30 15:49:00
77阅读
RXD and functions首先是有一个结论,对多项式做任意多次 transformation ,其结果跟做一次 transformation Tr(f,∑i=1mai)Tr(f, \sum\limits_{i = 1} ^{m} a_i)Tr(f,i=1∑mai)的结果是一样的,所以我们约定a=−∑i=1maia = -\sum\limits_{i = 1} ^{m} a_ia=−i=1∑mai。g=f(x+a)∑i=0nci(x+a)i∑i=0n∑j=0icii!j!(i−j)!x
原创
2021-08-27 09:23:24
85阅读
FFT/NTT可以说是非常有名的两个东西,从通信到数学再到计算机领域…… 然后我本人接触这个东西
原创
2022-08-25 10:55:24
163阅读
$FFT$总结 (因为还不会啊,,都没做过什么题,所以一边学一边打咯。。 1、主要是用来加速卷积形式的求和吧? $F*G(n)=F[i] × G[n-i]$ 平时是$O(n^2)$的,FFT可以$O(nlogn)$ 2、相当于求两个多项式的乘积(你要求的函数是其系数) $A(x)=A0+A1*x+A
转载
2017-04-14 11:53:00
289阅读
2评论