HNOI2017禮物
阿新 • • 發佈:2018-01-27
static ger pan sig min write open define put
禮物
- 這估計是最水,最無腦的一道題了
- 首先發現總和最接近時答案最小
- 發現答案就是\((\sum_{i=1}^{n}a[i]^2+b[i]^2)-2*max(\sum_{i=1}^{n}a[i]*b[i+j])(0<=j<=n-1)\)
- 前面隨便算,主要是後面那個式子,其實就是兩個數列錯位相乘加起來最大值
把\(b\)反過來就變成\(\sum_{i=1}^{n}a[i]*b[n-i-j])(0<=j<=n-1)\),直接就多項式卷積,FFT一算就行了。
// luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace
HNOI2017禮物