编程题
### 问题描述 当深秋的苹果树丰收时,村庄的居民们兴致勃勃地采摘着红彤彤的苹果。他们将采摘下来的 $N$ 个苹果排成了一排,形成了一个苹果序列 $A$,第 $i$ 个苹果的甜度值为 $A_i$($1\le i\le N$)。 现在村民需要将苹果序列划分为连续的 $M$ 段,对于分割后的某一段 $A_{l\sim r}$,定义其**美味值**表示为该段内不同下标的苹果的甜度两两相乘的总和,即 $\sum_{i = l}^{r}\sum_{j =i + 1}^{r}A_i\cdot A_j$。 注:如果某一段只有一个苹果,它的美味值为 $0$。 请问应当如何给苹果分段,才能使得美味值最大的一段尽可能小,你只需要输出这个最大美味值可能的最小值即可。 ### 输入格式 第 $1$ 行输入 $2$ 个正整数 $N, M$,分别为苹果序列的长度和需要分成的段数。 第 $2$ 行输入 $N$ 个空格隔开的正整数,表示苹果序列。 ### 输出格式 输出仅 $1$ 行,包含 $1$ 个整数,表示答案。 ### 样例输入 ```text 6 3 1 4 7 2 5 8 ``` ### 样例输出 ```text 39 ``` ### 说明 我们可以把苹果序列分成 $\text{[1,4,7],[2,5],[8]}$,这样最大的一段美味值为 $39$,是最小的分法。 ### 评测数据规模 $1 \leq M \leq N \leq 200000$。 $1 \leq A_i \leq 10000$。
查看答案
赣ICP备20007335号-2