编程题
### 问题描述 辉神正在玩一个关于长度为 $n$ 的非负整数序列的游戏。这个游戏中他需要把序列分成 $k + 1$ 个非空的块。为了得到 $k + 1$ 块,他需要重复下面的操作 $k$ 次: 1. 选择一个有超过一个元素的块(初始时你只有一块,即整个序列)。 2. 选择两个相邻元素把这个块从中间分开,得到两个非空的块。 每次操作后他将获得那两个新产生的块的元素和的乘积的分数,他想要最大化最后的总得分。 ### 输入格式 第一行包含两个整数 $n$ 和 $k$。 第二行包含 $n$ 个非负整数 $a_1, a_2, \dots, a_n$,表示前文所述的序列。 ### 输出格式 输出一个整数,表示他能获得的最大总得分。 ### 样例输入 ``` 7 3 4 1 3 4 0 2 3 ``` ### 样例输出 ``` 108 ``` ### 评测数据规模 $2 \leq n \leq 10^5$,$1 \leq k \leq \min \\{n - 1, 200\\}$,$0 \leq a_i \leq 10^4$。
查看答案
赣ICP备20007335号-2