随笔分类 - 数学 / 多项式 / FFT
摘要:首先正难则反,想到答案即为满足第一条要求的回文子序列数量,减去回文子串数量。回文子串数量 \(hash+\) 二分即可,考虑前半部分。 假如我们将一个回文子序列一层层剥开,就会发现它其实是由多个相同的字母对拼成的。那么容易想到把字母 \(a\) 和字母 \(b\) 的贡献分开计算。那第一条要求就可以
阅读全文
摘要:《关于贫穷的樵夫拥有 40000 把斧头这件事》。 相当于是多项式乘法,但是得带容斥,具体自己看代码吧。 #include<bits/stdc++.h> using namespace std; const int N=3e5+5; const long double pi=acos(-1); na
阅读全文
摘要:这题分三步:葺网(期望)、淀粉质(点分治)、蓉翅(容斥),再佐以芬芳团(FFT),一道巨难无比的 luogu 黑题就诞生了。 期望 先考虑在淀粉树上,\(i\) 点在 \(j\) 点的子树里的概率。实际上这个问题的每种情况相当于是 \(n\) 个点的各种排列方式。这也就相当于,我们在选择 \(j\)
阅读全文
摘要:容易发现: \[E_i=\sum_{j=1}^{i-1}\frac{q_j}{(i-j)^2}-\sum_{j=i+1}^n\frac{q_j}{(i-j)^2} \]不妨设 \(a_i=q_i,b_i=\dfrac 1{i^2}\): \[E_i=\sum_{j=1}^{i-1}a_jb_{i-j
阅读全文
摘要:看名字,然后准备转化为多项式乘法。 \[c_k=\sum_{i=0}^{n-k-1}a_{i+k}b_i \]将 \(a\) 反转,得: \[c_k=\sum_{i=0}^{n-k-1}a_{n-i-k-1}b_i \]这已经是多项式乘法的格式了,直接多项式乘法,最后对函数 \(c\) 的 \(0\
阅读全文
摘要:注:由于发现 FWT 解决的问题和 FFT,NTT 差别有点大,加之 FMT 的存在,本文就只解决 FFT 和 NTT,剩下两个放在别的算法总结里讲。 多项式一向是算法竞赛中相当博大精深的东西,作为一个蒟蒻,我将会以最大的努力完成这篇记录,以防自己以后看不懂qwq。 FFT(快速傅里叶变换) FFT
阅读全文