r e a d read read 题解
题目
解题方法
这道题目的解题方法是直接模拟。
题目要求出
min
i
=
1
n
∑
j
=
1
i
86400
−
a
j
≥
t
\begin{aligned}\min_{i=1}^n{\sum_{j=1}^{i}{86400-a_j}\geq t}\end{aligned}
i=1minnj=1∑i86400−aj≥t。
我们直接每一次减去
86400
−
a
j
86400-a_j
86400−aj就行了。
或者可以设
s
i
s_i
si表示
∑
j
=
1
i
86400
−
a
j
\begin{aligned}\sum_{j=1}^{i}{86400-a_j}\end{aligned}
j=1∑i86400−aj,则
s
i
=
s
i
−
1
+
86400
−
a
i
s_i=s_{i-1}+86400-a_i
si=si−1+86400−ai或
s
i
=
86400
i
−
∑
j
=
1
i
a
j
\begin{aligned}s_i=86400i-\sum_{j=1}^{i}{a_j}\end{aligned}
si=86400i−j=1∑iaj。
其中
∑
j
=
1
i
a
j
\begin{aligned}\sum_{j=1}^{i}{a_j}\end{aligned}
j=1∑iaj可以用前缀和维护。