题目来源
题目描述
题目解析
- 如果一个抄写员抄写第i本到第j本书,则需要时间A[i] + A[i+1].+ … + A[j]
- 最后完成时间取决于耗时最长的那个抄写员
- 需要找到一种分段方式,分成不超过K段,使得所有段的数字之和的最大值最小
多态
(1)确定状态
- 最后一步:
- 最优策略中最后一个抄写员(第k个)抄写的部分是第j到第N-1本书,则需要时间A[j]+…A[N-1]
- 则需要知道前K-1个人最少需要多少时间抄写完前j本书(第0-j-1本书)
- 子问题:
- 要知道K个人最短需要多少时间抄完前N本书
- 需要先知道k-1个人最短需要多少时间抄完前j本书
- 状态
- 设置f[k][i]为k个抄写员最少需要多少时间抄写完前i本书
(2)转移方程
(3)初始条件和边界情况
- 初始条件:
- f[0][i] = 正无穷,因为0个抄写员只能抄0本书
- f[i][0] = 0,i个抄写员需要0时间抄0本书
(4)计算顺序
- 从左到右,从上到下
- 返回f[k][n]