4827: [Hnoi2017]礼物
Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1315 Solved: 915
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
1 2 3 4 5
6 3 3 4 5
Sample Output
【样例解释】
需要将第一个手环的亮度增加1,第一个手环的亮度变为: 2 3 4 5 6 旋转一下第二个手环。对于该样例,是将第
二个手环的亮度6 3 3 4 5向左循环移动 2017-04-15 第 6 页,共 6 页 一个位置,使得第二手环的最终的亮度为
:3 3 4 5 6。 此时两个手环的亮度差异值为1。
HINT
Source
Solution
为了方便,我们从0开始编号,然后答案就是下面这个式子
\[{\mathop{ \sum }\limits_{{i=0}}^{{n-1}}{\mathop{{{ \left( {\mathop{{x}}\nolimits_{{i}}\mathop{{-y}}\nolimits_{{i+k}}+c} \right) }}}\nolimits^{{2}}}}\]
其中${c}$的取值范围为${ \left[ {-m,m} \right] }$,因为一旦超过这个范围,${\mathop{{y}}\nolimits_{{i}}}$的绝对值一定大于${\mathop{{x}}\nolimits_{{i}}}$的绝对值,这样把${\mathop{{y}}\nolimits_{{i}}}$+1或-1一定能使答案更小。
把答案式子拆开:
\[{{ \sum {\mathop{{\mathop{{x}}\nolimits_{{i}}}}\nolimits^{{2}}}}+{ \sum {\mathop{{\mathop{{y}}\nolimits_{{i}}}}\nolimits^{{2}}}-{2 \sum {\mathop{{x}}\nolimits_{{i\text{ }}}\mathop{{y}}\nolimits_{{i+k}}}+n\mathop{{c}}\nolimits^{{2}}+}}2c \left( { \sum {\mathop{{x}}\nolimits_{{i}}}-{ \sum {\mathop{{y}}\nolimits_{{i}}}}} \right) }\]
除了${ \sum {\mathop{{x}}\nolimits_{{i\text{ }}}\mathop{{y}}\nolimits_{{i+k}}}}$都算常数项了,然后考虑如何最小化${ \sum {\mathop{{x}}\nolimits_{{i\text{ }}}\mathop{{y}}\nolimits_{{i+k}}}}$
显然不能n^2枚举k。我们把$x$看成一个多项式,把$y$reverse一下,也看成一个多项式,然后把两个多项式作卷积,发现第n-1项的系数恰好就是${ \sum {\mathop{{x}}\nolimits_{{i\text{ }}}\mathop{{y}}\nolimits_{{i}}}}$