画家木板分配问题
https://www.geeksforgeeks.org/painters-partition-problem/
我们必须绘制n个长度为{A1,A2 … An}的木板。有k画家可用,每个画家需要1单位时间来绘画1单位的木板。问题是找到获取的最短时间。这项工作是在以下条件下完成的:任何画家都只能绘制连续的木板部分,例如木板{2,3,4}或仅木板{1}或什么都不涂,而不是木板{2,4,5}。
方法一 : dp[ ][ ] 表示前 j 块木板,i 个人的最短时间。
dp[ i ][ j ] = min( dp[ i ][ j ] , max(dp[ i - 1 ][ k ] , sum (a, k + 1 , j )) ) ,(1 <= k <=j );
dp[ i ] 只与 dp[ i - 1] 有关
1 |
|
方法二:分治。
最后的结果属于 max( a[ i ] ) - sum( a[ i ] ) ,对于 mid 如果对于给定的 k 个画家不可行,则取更大值继续。
1 | // Source code submitted by Gaurav on Q&A |