![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
FFT
文章平均质量分 77
QAQQQQQQQQQQQ
菜
展开
-
FFT--luoguP3723 [AH2017/HNOI2017]礼物
传送门可以设增加的自然数为ccc,原式就是∑i=1n(xi+c−yi)2\sum_{i=1}^n(x_i+c-y_i)^2∑i=1n(xi+c−yi)2展开以后就是∑i=1n(xi2+2×xi×c−2×xi×yi−2×yi×c+yi2)\sum_{i=1}^n(x_i^2+2\times x_i\times c-2\times x_i\times y_i-2\times y_i\time...原创 2018-11-23 20:07:17 · 204 阅读 · 0 评论 -
FFT--UVA12633 Super Rooks on Chessboard
传送门不那么裸的FFTFFTFFT,题目给的标号方式不太好,可以考虑改成从上到下为1−n1-n1−n,从右到左为1−m1-m1−m,这样从左上到右下的一条斜线上的点的横纵坐标的和是一样的,就可以用FFTFFTFFT来解决,斜着的只要记一下就行了,横和竖都可以用斜着的那种方法来计算emmm这样说可能不太清楚一看代码就懂了#include<iostream>#include<c...原创 2018-12-03 15:53:45 · 175 阅读 · 0 评论 -
多项式求逆/指数生成函数/分治FFT--bzoj3456: 城市规划
首先是多项式求逆(好像也是普遍做法?先来推一推柿子qwqqwqqwq设f[i]f[i]f[i]为iii个点的方案数,若不考虑不合法情况,f[i]=2Ci2f[i]=2^{C_i^2}f[i]=2Ci2若考虑不合法情况,就是有不连通的情况,因为所有点的本质都是一样的,所以我们只需要规定一个点为基准点,假设为111那么111号点的联通块大小可能为1≤j≤i−11\le j\le i-11≤j...原创 2018-12-05 11:18:27 · 351 阅读 · 0 评论 -
NTT+分治FFT--P4091 [HEOI2016/TJOI2016]求和
传送门这道题很妙啊首先看题目中的式子,令新的f(n)=∑i=0nS(n,i)×2i×(i!)f(n)=\sum_{i=0}^nS(n,i)\times 2^i\times (i!)f(n)=∑i=0nS(n,i)×2i×(i!),如果能快速求出这个式子的值,那么ans=∑i=0nf(i)ans=\sum_{i=0}^n f(i)ans=∑i=0nf(i)首先设g(n)=∑i=0nS(n,...原创 2018-11-28 07:45:30 · 399 阅读 · 0 评论 -
FFT+计数--bzoj3513: [MUTC2013]idiots
传送门因为不能构成三角形的三边满足a+b≤ca+b\le ca+b≤c用FFTFFTFFT求出a+b=ca+b=ca+b=c的方案数,再把重复取一个的减掉,然后从小到大枚举第三条边,把前面小于的都加上,再乘以当前长度的边的个数加到答案里因为a,ba,ba,b和b,ab,ab,a是一样的,所以要除以2再用总数Cn3C_n^3Cn3减掉不合法的再除以总数就是概率注意limit&lt...原创 2018-11-30 16:46:34 · 135 阅读 · 0 评论 -
FFT+容斥--bzoj3771: Triple
传送门分别把val,val∗2,val∗3val,val*2,val*3val,val∗2,val∗3算一遍FFTFFTFFT代表选一个的选两个的和选三个的,但是会算重,所以考虑容斥式子在代码里#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#inclu...原创 2018-12-02 17:06:34 · 151 阅读 · 0 评论 -
【模板】分治FFT
luogu4721一道模板题前置知识:FFT NTT cdqcdqcdq分治(虽然本人觉得和cdqcdqcdq没啥关系,应该只用了分治思想用来解决这样的式子:f(i)=∑j=1i(f(j)×g(i−j))f(i)=\sum_{j=1}^i(f(j)\times g(i-j))f(i)=∑j=1i(f(j)×g(i−j))可以看到因为fff数组是要求出来的,所以不能直接用FFTFFTFFT...原创 2018-11-27 09:00:28 · 1785 阅读 · 0 评论 -
FFT--bzoj4503: 两个串
传送门先不管???,考虑两个串的对应位置,如果ttt在sss的iii处出现则一定满足∑j=ii+lent−1(s[j]−t[j−i])2=0\sum_{j=i}^{i+lent-1}(s[j]-t[j-i])^2=0∑j=ii+lent−1(s[j]−t[j−i])2=0这个拆开然后翻转ttt就是卷积的形式再考虑???,发现只要把???的值赋为000,然后再在这个式子外乘上t[j]t[j...原创 2018-11-26 20:24:04 · 202 阅读 · 0 评论 -
分块FFT--bzoj3509: [CodeChef] COUNTARI
传送门给定一个长度为N的数组A[],求有多少对i, j, k(1<=i<j<k<=N)满足A[k]-A[j]=A[j]-A[i]。暴力的话就考虑枚举jjj,然后算两边的可以用FFTFFTFFT来算,但这样复杂度是n∗mx∗logmxn*mx*logmxn∗mx∗logmx,优化的话就可以用分块,而且块不能太小,然后块外用FFTFFTFFT,块内就暴力。注意卡常被卡了...原创 2018-12-02 14:39:54 · 460 阅读 · 0 评论 -
FFT+manacher--bzoj3160: 万径人踪灭
传送门一道隐蔽的FFTFFTFFT题目要求回文子序列的个数,不能连续的话就用全部的减去连续的,连续的可以用manachermanachermanacher计算,全部的回文子序列怎么求呢?因为这个序列中只有aaa和bbb,假设a=1,b=0a=1,b=0a=1,b=0,那么两个位置的字符都是aaa就是相乘为000(bbb的反着来同理)。这样的话以iii为中心的回文子序列就可以看成s[i−k]...原创 2018-11-25 16:05:03 · 151 阅读 · 0 评论 -
快速傅里叶变换(FFT)(学习笔记)
学习了一波FFTFFTFFT,只是浅浅的入门。还有很多前置知识,有一些还不是太了解,完了深入学习之后再补博客qwqqwqqwq以下内容大部分参考秦岳学长的课件多项式形如A(x)=∑k=0n−1ak×xkA(x)=\sum_{k=0}^{n-1}a_k\times x^kA(x)=∑k=0n−1ak×xk,其中aka_kak为多项式系数C(x)=A(x)+B(x)C(x)=A(x)+B...原创 2018-11-29 07:48:37 · 896 阅读 · 0 评论 -
FFT+生成函数--hdu5307 He is Flying
传送门题意:给一个数列,若有一个数对(i,j)(i,j)(i,j)满足sum[i]−sum[j−1]==Ssum[i]-sum[j-1]==Ssum[i]−sum[j−1]==S,则得到i−(j−1)i-(j-1)i−(j−1)的收益,求SSS取000到sumnsum_nsumn的每一个值时,各自的全部收益。看那个范围就是典型的FFTFFTFFT啊···不过这个题的构造还是很巧妙的,因为要...原创 2018-12-11 10:20:04 · 197 阅读 · 0 评论