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