随笔分类 - 数学 - 多项式
摘要:题目大意:给定一个长度为 $N$ 的序列,求从序列中选出 $K$ 个数的集合乘积之和是多少。 题解: 由于是选出 $K$ 个数字组成的集合,可知对于要计算的 $K$ 元组来说是没有标号的,而元组是由序列中 $N$ 个数字组合而成的。因此,将要求的元组看作组合对象,该组合对象是由 $N$ 个不同种类的
        阅读全文
                
摘要:代码如下 cpp include using namespace std; typedef long long LL; const LL mod = 998244353, g = 3, ig = 332748118; inline LL fpow(LL a, LL b) { LL ret = 1 %
        阅读全文
                
摘要:代码如下 cpp include using namespace std; typedef long long LL; const LL mod = 998244353, g = 3, ig = 332748118; inline LL fpow(LL a, LL b) { LL ret = 1 %
        阅读全文
                
摘要:题目大意:给定长度为 $n 1$ 的序列 $g$,求 $f$ 序列,其中 $f$ 为 $$ f[i]=\sum_{j=1}^{i} f[i j] g[j] $$ 学会了分治 $fft$。 发现这个式子中也含有卷积,但是这是一个递推式,即:$f$ 数组是未知的。 考虑分治策略,即:假设已经算出区间 $
        阅读全文
                
摘要:题目大意:给定一个文本串和一个模板串,串中含有通配符,求文本串中有多少个位置可以与文本串完全匹配。 题解:利用卷积求解字符串匹配问题。 通配符字符串匹配的数值表示为 $$\sum\limits_{i = 0}^{m 1}(a[i] b[i + k])^2 a[i]b[i + k]=0$$。直接展开之
        阅读全文
                
摘要:题目大意:给定两个序列 A、B,现可以将 A 序列的每一个元素的值增加或减少 C,求 $\sum\limits_{i=0}^{n 1}(a_i b_{i+k})^2$ 的最小值是多少。 题解:先不考虑环的问题,仅考虑 A 序列所有元素增加一个值 C,这将体现在最后的求和式中,即:求和式变成 $$\s
        阅读全文
                
摘要:题目大意:求 $$ E_{j}=\sum_{ij} \frac{q_{i}}{(i j)^{2}} $$ 题解:可以发现,这个和式隐藏着卷积的形式,即:设 $f(i)={1\over i^2}$,$g(i)=q_i$,则以上和式可以表示成 $$\sum\limits_{i=0}^j g(i)f(j 
        阅读全文
                
摘要:NTT(快速数论变换)是一种更高效的计算多项式卷积的算法,具体优势体现在不涉及浮点数之间的运算,依靠取模操作完成与 FFT 相同的功能。 NTT 利用了数论中原根和复数中单位根的四点相同的性质来进行对单位根运算的替代。 具体来说,FFT 之所以具有十分优秀的复杂度,归根结底是由于单位根具备以下四点性
        阅读全文
                
摘要:题目大意:rt 题解:将长度为 N 的大整数看作是一个 N 1 次的多项式,利用 FFT 计算多项式的卷积即可。 代码如下
        阅读全文
                
摘要:FFT 的本质是在 $O(nlogn)$ 的时间内进行点值表达和系数表达之间的转换,并在 $O(n)$ 的时间内计算结果,故总时间复杂度为 $O(logn)$。 FFT注意事项 由于 tot 采用的是倍增的方式,因此实际内存开销可能是 $2(n+m)$。 多项式的项数和次数不同。 update at
        阅读全文
                

 浙公网安备 33010602011771号
浙公网安备 33010602011771号