LintCode 437.书籍复印
分析: 如果要知道k个人需要多少时间抄写完所有的书,那么 根据木桶原理,最后时间取决于最长的抄写员,每个抄写员写第i
本到第j
本书,则需要时间`pages[i] + pages[i+1] + … + pages[j]。
确定状态: 第t
个抄写员若从第j
本到第N-1
本书,抄写时间为pages[j]+....+pages[N-1]
.并和前面t-1
个人的抄写时间作比较。
子问题: 我们需要知道前面t-1
个人抄写前面0
到j-1
本书的时间。
状态: 设f[k][i]
为前k个抄写员最少需要多少时间抄完前i
本书。
转移方程: f [ k ] [ i ] = m i n j = 0 , . . . , i { m a x { f [ k − 1 ] [ j ] , p a g e s [ j ] + . . . + p a g e s [ i − 1 ] } } f[k][i]=min_{j=0,...,i}\{max\{f[k-1][j], pages[j]+...+pages[i-1]\}\} f[k][i]=mi