前言
原来是喜欢出背景题的出题组,着实有点意思。
分析
关键结论:任意区间的最高评价都等于该区间所有风味值之和,因此答案就是整个序列的总和,与如何划分以 k k k 无关。
设区间长度为 m m m,最大风味值为 M = max l ≤ i ≤ r a i . M=\max_{l\le i\le r}a_i. M=maxl≤i≤rai.。
选择值为 M M M 的甜点作为主打,则因为 a i ≤ M a_i\le M ai≤M:
w p = m M − ∑ i = l r ∣ a i − M ∣ = m M − ∑ i = l r ( M − a i ) = ∑ i = l r a i . \begin{aligned} w_p &=mM-\sum_{i=l}^{r}|a_i-M|\\ &=mM-\sum_{i=l}^{r}(M-a_i)\\ &=\sum_{i=l}^{r}a_i. \end{aligned} wp=mM−i=l∑r∣ai−M∣=mM−i=l∑r(M−ai)=i=l∑rai.
另一方面,对任意选择的主打值 x = a p x=a_p x=ap,单个 a i a_i ai 的贡献为
x − ∣ a i − x ∣ ≤ a i , x-|a_i-x|\le a_i, x−∣ai−x∣≤ai,
所以
w p = ∑ i = l r ( x − ∣ a i − x ∣ ) ≤ ∑ i = l r a i . w_p=\sum_{i=l}^{r}\left(x-|a_i-x|\right) \le \sum_{i=l}^{r}a_i. wp=∑i=lr(x−∣ai−x∣)≤∑i=lrai.
因此:
f ( l , r ) = ∑ i = l r a i f(l,r)=\sum_{i=l}^{r}a_i f(l,r)=∑i=lrai
无论划分成哪 (k) 个连续非空区间,总评价都是
∑ j = 1 k f ( l j , r j ) = ∑ i = 1 n a i . \sum_{j=1}^{k}f(l_j,r_j)=\sum_{i=1}^{n}a_i. ∑j=1kf(lj,rj)=∑i=1nai.
说白了就是直接求和即可得到答案,也算是比较水的一道签到题了。