首页 > 代码库 > HNOI2017 day1 T3 礼物

HNOI2017 day1 T3 礼物

题目大意:

我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了,他决定买一对情侣手
环,一个留给自己,一个送给她。每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮
度。
但是在她生日的前一天,我的室友突然发现他好像拿错了一个手环,而且已经没时间去更
换它了!他只能使用一种特殊的方法,将其中一个手环中所有装饰物的亮度增加一个相同的自
然数 c(即非负整数)
。并且由于这个手环是一个圆,可以以任意的角度旋转它,但是由于上面
装饰物的方向是固定的,所以手环不能翻转。需要在经过亮度改造和旋转之后,使得两个手环
的差异值最小。
在将两个手环旋转且装饰物对齐了之后,从对齐的某个位置开始逆时针方向对装饰物编号
1,2,...,n,其中 n 为每个手环的装饰物个数,第 1 个手环的 i 号位置装饰物亮度为 x i ,第 2 个手
环的 i 号位置装饰物亮度为 y i ,两个手环之间的差异值为(参见输入输出样例和样例解释):
n
∑(x i − y i ) 2
i=1
麻烦你帮他计算一下,进行调整(亮度改造和旋转),使得两个手环之间的差异值最小,
这个最小值是多少呢?

 

题解:

因为在x中加等于在y中减,我们只考虑在y中加减。

sigma{(x[i]-(y[i]+c))^2}=sigma{x[i]^2+y[i]^2+c^2+2*c*y[i]-2*x[i]*y[i]-2*c*x[i]}

由于x[i]^2和y[i]^2]是定值,我们不考虑。那么就只剩n*c^2+2*c*(sumy-sumx)-2*sigma{x[i]*y[i]}

前面可以配方算出最小值,后面可以通过fft算出最小值。

 

HNOI2017 day1 T3 礼物