题目大意
给出两个序列
a
,
b
。定义两个序列的差异值为
∑i=1n(ai−bi)2
。你可以对任意一个序列做如下两个操作。
1. 把序列首尾相接,然后从某个位置断开(即旋转)。
2. 给某个序列整体加上
c
。
求
A
和
B
最小的差异值。
题解
设差异值为
f
,则序列
a
和
b
的差异值
f=∑i=1n(ai−bi)2
。
则加上
c
后的差异值
f′=∑i=1n(ai+c−bi)2
可得:
f′−f=∑i=1n[(a2i+2aibi+b2i)−(a2i+b2i+2aic−2bic−2aibi+c2)]
=∑i=1n2aic−2bic+c2
=∑i=1n(2ai−2bi+c)×c
=2(∑i=1nai−∑i=1nbi)c+nc2
既然要尽量接近,那就肯定要把差异均摊开。即让
c=∑i=1n(ai−bi)n