传送门:https://www.luogu.com.cn/problem/P3723
解题思路
先化简式子,$ Ans=sum_{i=1}^n (a_i+b_{i+x}+k)^2=sum a_{i}^2 + sum b_{i}^2 + nk^2+sum (a_{i}-b_{i}) * k - sum a_{i}b_{i+x} $
前面的两个平方的和O(n)直接算,中间的直接二次函数找极值即可(不过若极点的横坐标是负数的话注意四舍五入的方法,负数的取整是会向上取的,例如printf("%d",-7.8)就会输出-7),最后的看上去是一个卷积的形式,考虑FFT,$a_{i}和b_{i+x}的下标相差x$,容易想到翻转a数组,然后直接FFT即可
不要忘记倍长下b数组