这个式子有点…… 乱。
嗯,我们来推一推式子…… 推一推式子。
原式: Fi=∑i<jqiqj(i−j)2–∑i>jqiqj(i−j)2
那么就是: Ei=Fiqi=∑i<jqj(i−j)2–∑i>jqj(i−j)2
令 x=1y2 , 那么:
Ei=Fiqi=∑i<jqjxi−j–∑i>jqjxj−i
还可以写成:Ei=∑ij=1qjxi−j–∑nj=i+1qjxj−i
令 Si=qn−i+1,那么式子变成了:
Ei=∑ij=1qjxi−j–∑nj=i+1pn−jxj−i
这个时候我们可以发现,∑ij=1qjxi−j 和 ∑nj=i+1pn−jxj−i 都是卷积,那么我们可以跑两遍 FFT,分别求出上面的两个式子,记录为 A,B 。最后的答案就是 A[i].x–B[n+1−i].x 了。
FFT 不用做太多修改,套模板跑就行 (本来就是模板)。
0 条评论