![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
快速傅里叶变换
文章平均质量分 53
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[BZOJ3160]万径人踪灭 FFT+manacher
所求可以转化为所有位置和字母都回文的子序列减去回文子串。后者显然可以用manacher解决。 假设字符串倍增后,关于i对称的字母对一共有f[i]对,那么以其为对称中心的回文子序列就一共有2^f[i]-1种。我们还发现f[i]=∑[s[j]==s[i-j]]{1<=j<=i-1},s为未倍增的原串。这是一个卷积的形式,可以用fft解决,分成∑[s[j]==s[i-j]==’a’]和∑[s[j]==s原创 2017-10-19 08:09:07 · 295 阅读 · 0 评论 -
[BZOJ2194] FFT卷积
fft板子易错点: 1、bit为最长的多项式的位数 2、maxn>(1<#include<iostream>#include<cstdio>#include<cmath>#include<complex>using namespace std;const int maxn=280010;//maxn>2^(2*n) const double pi=acos(-1);typedef原创 2017-10-16 16:14:46 · 365 阅读 · 0 评论 -
[BZOJ4259] 残缺的字符串 FFT
如果我们把*看成00,两个串相等当且仅当∑AiBi(Ai−Bi)2=0\sum A_iB_i(A_i-B_i)^2=0。 答案要求的就是对于每个tt,∑AiBi+t(Ai−Bi+t)2\sum A_iB_{i+t}(A_i-B_{i+t})^2是否为0。 将AA翻转, ∑An−iBi+t(An−i−Bi+t)2=∑A3n−iBi+t−2∗A2n−iB2i+t+An−iB3i+t\sum A_原创 2018-01-04 21:58:16 · 295 阅读 · 0 评论 -
[BZOJ4555]求和 多项式求逆
设gn=∑ni=0{ni}2ii!gn=∑i=0n{ni}2ii!g_n=\sum_{i=0}^n \begin{Bmatrix} n\\i \end{Bmatrix}2^ii!,题目即求∑ni=0gi∑i=0ngi\sum_{i=0}^n g_i。 考虑gngng_n的组合意义,把nnn个元素放进iii个集合,这些集合有顺序之分,而且每个集合有两种状态,那么考虑枚举一个集合,gn=∑ni=12...原创 2018-04-09 21:09:29 · 267 阅读 · 0 评论 -
[AGC005] F - Many Easy Problems 组合数学+快速数论变换
题面 首先一个联通块也是一棵树,点数=&quot; role=&quot;presentation&quot; style=&quot;position: relative;&quot;&gt;===边数+1&quot; role=&quot;presentation&quot; style=&quot;position: relative;&am原创 2018-01-24 21:35:05 · 538 阅读 · 0 评论 -
[JZOJ5740]幻想世界 快速数论变换
首先发现α,βα,β\alpha,\beta的贡献和ak,bkak,bka_k,b_k的贡献是可以分开计算的,把一个DP状态看成是二维坐标上的一个点,转移就是每次从左边(x−1,y)(x−1,y)(x-1,y)或者从下面(x,y−1)(x,y−1)(x,y-1)转移。 先考虑计算α,βα,β\alpha,\beta的贡献。 考虑枚举两个点(x1,y1),(x2,y2)(x1≤x2,y1≤y2)...原创 2018-05-24 09:24:47 · 441 阅读 · 0 评论 -
[联合集训6-18]不同班级 容斥+分治NTT
我们设f(x)f(x)f(x)是至少有xxx个人与本班人匹配的方案数,那么根据容斥就有Ans=∑mi=0(−1)if(i)(n−i)!Ans=∑i=0m(−1)if(i)(n−i)!Ans=\sum_{i=0}^m (-1)^if(i)(n-i)! ai=bi=1ai=bi=1a_i=b_i=1的时候是经典的错排问题,f(x)=(nx)f(x)=(nx)f(x)={n\choose x}。 对...原创 2018-06-20 21:05:29 · 325 阅读 · 0 评论 -
[联合集训6-22] 疑惑 位运算+FFT
根据期望的线性性,我们可以对每一位分别考虑其为111的概率。那么假设一位有c0c0c_0个000,c1c1c_1个111,选kkk个xor和为111的方案数显然为∑c1i=0[i|2](c1i)(c0k−i)∑i=0c1[i|2](c1i)(c0k−i)\sum_{i=0}^{c_1}[i|2]{c_1\choose i}{c_0\choose k-i}。FFT即可。 代码:#inclu...原创 2018-06-22 21:18:26 · 410 阅读 · 0 评论