数列分段:将数列分为M段求每段和最大值的最小值

cr646316 程序题 共 个子题

对于给定的一个长度为N的正整数数列$A_{1\sim N}$,现要将其分成$M$($M \leq N$)段,并要求每段连续,且每段和的最大值最小。

关于「最大值最小」说明

例如数列 4 2 4 5 1 要分成3段:

  • 分段方式1:[4 2][4 5][1],各段和为6、9、1,最大值为9。
  • 分段方式2:[4][2 4][5 1],各段和为4、6、6,最大值为6。 无论如何分段,最大值不会小于6,因此该情况的最小最大段和为6。

输入描述

第1行包含两个正整数 $N, M$。 第2行包含 $N$ 个空格隔开的非负整数 $A_i$,含义如题目所述。

输出描述

输出一个正整数,即每段和最大值的最小值。

输入样例

5 3
4 2 4 5 1

输出样例

6

数据范围提示

  • 对于20%的数据,$N \leq 10$。
  • 对于40%的数据,$N \leq 1000$。
  • 对于100%的数据,$1 \leq N \leq 10^5$,$M \leq N$,$A_i < 10^8$,答案不超过$10^9$。

本题为编程题,提交代码并运行通过测试点后判分。

正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
提交记录
共 条 仅展示自由练习提交
正在加载提交记录…
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧