##2018CCPC秦皇岛热身赛B题解: ∑i=1,j>in(aj−ai)2 \sum_{i=1,j>i}^{n}(a_j-a_i)^2i=1,j>i∑n(aj−ai)2
暴力法O(n2)O(n^2)O(n2)比较容易想到,不再赘述
这里提供一个O(n)O(n)O(n)的解法
T=∑i=1,j>in(aj−ai)2T=\sum_{i=1,j>i}^{n}(a_j-a_i)^2T=i=1,j>i∑n(aj−ai)2
则有T+0+T=∑i=1,j>in(aj−ai)2+∑i=1,j=in(aj−ai)2+∑i=1,j<in(aj−ai)2T+0+T=\sum_{i=1,j>i}^{n}(a_j-a_i)^2+\sum_{i=1,j=i}^{n}(a_j-a_i)^2+\sum_{i=1,j<i}^{n}(a_j-a_i)^2T+0+T=i=1,j>i∑n(aj−ai)2+i=1,j=i∑n(aj−ai)2+i=1,j<i∑n(aj−ai)2
=∑i=1,j=1n(aj−ai)2=\sum_{i=1,j=1}^{n}(a_j-a_i)^2=i=1,j=1∑n(aj−ai)2
=∑i=1,j=1nai2+∑i=1,j=1naj2−2∗∑i=1,j=1nai∗aj=\sum_{i=1,j=1}^{n}{a_i^2}+\sum_{i=1,j=1}^{n}{a_j^2}-2*\sum_{i=1,j=1}^{n}{a_i*a_j}=i=1,j=1∑nai2+i=1,j=1∑naj2−2∗i=1,j=1∑nai∗aj
=n∗∑i=1nai2+n∗∑j=1naj2−2∗∑i=1nai∗∑j=1naj=n*\sum_{i=1}^{n}{a_i^2}+n*\sum_{j=1}^{n}{a_j^2}-2*\sum_{i=1}^{n}{a_i}*\sum_{j=1}^{n}{a_j}=n∗i=1∑nai2+n∗j=1∑naj2−2∗i=1∑nai∗j=1∑naj
令S1=∑i=1naiS_1=\sum_{i=1}^{n}{a_i} S1=i=1∑nai
S2=∑i=1nai2S_2=\sum_{i=1}^{n}{a_i^2} S2=i=1∑nai2
则2∗T=2∗n∗S2−2∗S12*T=2*n*S_2-2*S_12∗T=2∗n∗S2−2∗S1
即 T=n∗S2−S1T=n*S_2-S_1T=n∗S2−S1
这样构造出aia_iai的部分和S1S_1S1和平方部分和S2S_2S2后就可以直接计算出TTT