AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3311. 编程能力提升计划

中等通过率 49% · 提交 155 · 通过 76
二分查找贪心模拟

小慕正在准备一个重要的编程竞赛,为此他制定了一套刷题计划。题库中共有 n 道题,编号从 0 到 n-1,他计划在 m 天内按照题目编号顺序完成所有题目(注意,小慕不能在多天里做同一道题)。 在刷题计划中,小慕需要花费 time[i] 的时间来完成编号为 i 的题目。此外,他可以选择直接查看答案,从而省去该题的做题时间。为了确保刷题效果,小慕每天最多只能直接查看一次答案。 我们定义在 m 天中,做题时间最多的一天耗时为 T(直接查看答案的题目不计入当天的做题总时间)。请你帮助小慕求出最小的 T 是多少。

提示:带虚线的词点一下有通俗解释。

输入描述

第一行输入为time,time[i]的时间完成编号 i 的题目 第二行输入为m,m表示几天内完成所有题目,1 ≤ m ≤ 180

输出描述

最小耗时整数T

示例

示例 1

输入

999,999,999
4

输出

0

说明:在前三天中,小王每天都直接看答案,这样他可以在三天内完成所有的题目并不花任何时间

示例 2

输入

1,2,2,3,5,4,6,7,8
5

输出

4

说明:第一天完成前3题,第3题看答案; 第二天完成第4题和第5题,第5题看答案; 第三天完成第6和第7题,第7题看答案; 第四天完成第8题,直接看答案: 第五天完成第9题,直接看答案

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
示例:time=[1,2,2,3,5,4,6,7,8], m=5 每天最多看一次答案(标记为A),其余题实际耗时求和 第1天: 1+2+A=3 第2天: 3+A=3 第3天: 4+A=4 第4天: A=0 第5天: A=0 每天耗时: 3, 3, 4, 0, 0 → 最大T=4 答案: 输出4
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「编程能力提升计划」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。