考虑前
k
k
k 项的方差。
s
2
=
1
k
∑
i
=
1
k
(
v
ˉ
−
v
i
)
2
s
=
1
k
(
∑
i
=
1
k
(
v
ˉ
2
+
v
i
2
−
2
v
ˉ
v
i
)
)
=
1
k
(
∑
i
=
1
k
v
ˉ
2
+
∑
i
=
1
k
v
i
2
−
∑
i
=
1
k
2
v
ˉ
v
i
)
)
=
1
k
(
k
v
ˉ
2
+
∑
i
=
1
k
v
i
2
−
2
v
ˉ
∑
i
=
1
k
v
i
)
)
=
v
ˉ
2
+
1
k
∑
i
=
1
k
v
i
2
−
2
k
v
ˉ
∑
i
=
1
k
v
i
=
1
k
2
(
∑
i
=
1
k
v
i
)
2
+
1
k
∑
i
=
1
k
v
i
2
−
2
k
v
ˉ
∑
i
=
1
k
v
i
=
1
k
2
(
∑
i
=
1
k
v
i
)
2
+
1
k
∑
i
=
1
k
v
i
2
−
2
k
2
(
∑
i
=
1
k
v
i
)
2
=
1
k
∑
i
=
1
k
v
i
2
−
1
k
2
(
∑
i
=
1
k
v
i
)
2
\begin{aligned} s^2&=\frac{1}{k}\sum_{i=1}^k(\bar{v}-v_i)^2s\\ &=\frac 1k\Big( \sum_{i=1}^k (\bar v^2+v_i^2-2\bar vv_i)\Big)\\ &=\frac 1k\Big( \sum_{i=1}^k \bar v^2+\sum_{i=1}^kv_i^2-\sum_{i=1}^k2\bar vv_i)\Big)\\ &=\frac 1k\Big( k\bar v^2+\sum_{i=1}^kv_i^2-2\bar v\sum_{i=1}^kv_i)\Big)\\ &=\bar v^2+\frac 1k\sum_{i=1}^kv_i^2-\frac 2k\bar v\sum_{i=1}^kv_i\\ &=\frac 1{k^2}\Big(\sum_{i=1}^k v_i\Big)^2+\frac 1k\sum_{i=1}^kv_i^2-\frac 2k\bar v\sum_{i=1}^kv_i\\ &=\frac 1{k^2}\Big(\sum_{i=1}^k v_i\Big)^2+\frac 1k\sum_{i=1}^kv_i^2-\frac 2{k^2}\Big(\sum_{i=1}^kv_i\Big)^2\\ &=\frac 1k\sum_{i=1}^kv_i^2-\frac 1{k^2}\Big(\sum_{i=1}^kv_i\Big)^2\\ \end{aligned}
s 2 = k 1 i = 1 ∑ k ( v ˉ − v i ) 2 s = k 1 ( i = 1 ∑ k ( v ˉ 2 + v i 2 − 2 v ˉ v i ) ) = k 1 ( i = 1 ∑ k v ˉ 2 + i = 1 ∑ k v i 2 − i = 1 ∑ k 2 v ˉ v i ) ) = k 1 ( k v ˉ 2 + i = 1 ∑ k v i 2 − 2 v ˉ i = 1 ∑ k v i ) ) = v ˉ 2 + k 1 i = 1 ∑ k v i 2 − k 2 v ˉ i = 1 ∑ k v i = k 2 1 ( i = 1 ∑ k v i ) 2 + k 1 i = 1 ∑ k v i 2 − k 2 v ˉ i = 1 ∑ k v i = k 2 1 ( i = 1 ∑ k v i ) 2 + k 1 i = 1 ∑ k v i 2 − k 2 2 ( i = 1 ∑ k v i ) 2 = k 1 i = 1 ∑ k v i 2 − k 2 1 ( i = 1 ∑ k v i ) 2
则
m
m
m 项的方差为
s
2
=
1
m
∑
i
=
1
m
v
i
2
−
1
m
2
(
∑
i
=
1
m
v
i
)
2
s^2=\frac 1m\sum_{i=1}^mv_i^2-\frac 1{m^2}\Big(\sum_{i=1}^mv_i\Big)^2
s 2 = m 1 i = 1 ∑ m v i 2 − m 2 1 ( i = 1 ∑ m v i ) 2
乘上
m
2
m^2
m 2 ,得:
s
2
m
2
=
m
∑
i
=
1
m
v
i
2
−
(
∑
i
=
1
m
v
i
)
2
s^2m^2=m\sum_{i=1}^mv_i^2-\Big(\sum_{i=1}^mv_i\Big)^2
s 2 m 2 = m i = 1 ∑ m v i 2 − ( i = 1 ∑ m v i ) 2
由于
(
∑
i
=
1
m
v
i
)
2
\Big(\sum\limits_{i=1}^mv_i\Big)^2
( i = 1 ∑ m v i ) 2 固定不变,因此要让
s
2
m
2
s^2m^2
s 2 m 2 最小,只需要最小化
∑
i
=
1
m
v
i
2
\sum\limits_{i=1}^mv_i^2
i = 1 ∑ m v i 2 即可。 定义:
f
[
i
]
[
j
]
f[i][j]
f [ i ] [ j ] 表示前面
i
i
i 个数分成
j
j
j 段的最小价值,
s
u
m
[
i
]
=
∑
i
=
1
i
a
i
sum[i]=\sum\limits_{i=1}^i a_i
s u m [ i ] = i = 1 ∑ i a i 转移:
f
[
i
]
[
j
]
=
min
k
=
1
i
−
1
f
[
k
]
[
j
−
1
]
+
(
s
u
m
[
i
]
−
s
u
m
[
k
]
)
2
f[i][j]=\min\limits_{k=1}^{i-1}f[k][j-1]+(sum[i]-sum[k])^2
f [ i ] [ j ] = k = 1 min i − 1 f [ k ] [ j − 1 ] + ( s u m [ i ] − s u m [ k ] ) 2 时间复杂度
Θ
(
n
3
)
\Theta(n^3)
Θ ( n 3 ) ,考虑斜率优化。 设
k
a
<
k
b
k_a<k_b
k a < k b 且
k
a
k_a
k a 优于
k
b
k_b
k b ,则有:
f
[
k
a
]
[
j
−
1
]
+
(
s
u
m
[
i
]
−
s
u
m
[
k
a
]
)
2
<
f
[
k
b
]
[
j
−
1
]
+
(
s
u
m
[
i
]
−
s
u
m
[
k
b
]
)
2
f[k_a][j-1]+(sum[i]-sum[k_a])^2<f[k_b][j-1]+(sum[i]-sum[k_b])^2
f [ k a ] [ j − 1 ] + ( s u m [ i ] − s u m [ k a ] ) 2 < f [ k b ] [ j − 1 ] + ( s u m [ i ] − s u m [ k b ] ) 2
f
[
k
a
]
[
j
−
1
]
+
2
s
u
m
[
i
]
∗
s
u
m
[
k
a
]
+
s
u
m
[
k
a
]
2
<
f
[
k
b
]
[
j
−
1
]
+
2
s
u
m
[
i
]
∗
s
u
m
[
k
b
]
+
s
u
m
[
k
b
]
2
f[k_a][j-1]+2sum[i]*sum[k_a]+sum[k_a]^2<f[k_b][j-1]+2sum[i]*sum[k_b]+sum[k_b]^2
f [ k a ] [ j − 1 ] + 2 s u m [ i ] ∗ s u m [ k a ] + s u m [ k a ] 2 < f [ k b ] [ j − 1 ] + 2 s u m [ i ] ∗ s u m [ k b ] + s u m [ k b ] 2
化简:
(
f
[
k
a
]
[
j
−
1
]
+
s
u
m
[
k
a
]
2
)
−
(
f
[
k
b
]
[
j
−
1
]
+
s
u
m
[
k
b
]
2
)
<
2
s
u
m
[
i
]
×
(
s
u
m
[
k
a
]
−
s
u
m
[
k
b
]
)
(f[k_a][j-1]+sum[k_a]^2)-(f[k_b][j-1]+sum[k_b]^2)<2sum[i]\times(sum[k_a]-sum[k_b])
( f [ k a ] [ j − 1 ] + s u m [ k a ] 2 ) − ( f [ k b ] [ j − 1 ] + s u m [ k b ] 2 ) < 2 s u m [ i ] × ( s u m [ k a ] − s u m [ k b ] )
整理:整理:
(
f
[
k
a
]
[
j
−
1
]
+
s
u
m
[
k
a
]
2
)
−
(
f
[
k
b
]
[
j
−
1
]
+
s
u
m
[
k
b
]
2
)
(
s
u
m
[
k
a
]
−
s
u
m
[
k
b
]
)
<
2
s
u
m
[
i
]
\frac{(f[k_a][j-1]+sum[k_a]^2)-(f[k_b][j-1]+sum[k_b]^2)}{(sum[k_a]-sum[k_b])}<2sum[i]
( s u m [ k a ] − s u m [ k b ] ) ( f [ k a ] [ j − 1 ] + s u m [ k a ] 2 ) − ( f [ k b ] [ j − 1 ] + s u m [ k b ] 2 ) < 2 s u m [ i ]
单调队列维护递增斜率即可,转移时间复杂度
Θ
(
1
)
\Theta(1)
Θ ( 1 ) ,总时间复杂度
Θ
(
n
2
)
\Theta(n^2)
Θ ( n 2 )