Processing math: 100%

[Hnoi2017]礼物

传送门:https://www.luogu.com.cn/problem/P3723

解题思路

先化简式子,Ans=ni=1(ai+bi+x+k)2=a2i+b2i+nk2+(aibi)kaibi+x

前面的两个平方的和O(n)直接算,中间的直接二次函数找极值即可(不过若极点的横坐标是负数的话注意四舍五入的方法,负数的取整是会向上取的,例如printf("%d",-7.8)就会输出-7),最后的看上去是一个卷积的形式,考虑FFT,aibi+xx,容易想到翻转a数组,然后直接FFT即可

不要忘记倍长下b数组

posted @   niolle  阅读(107)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示