給定 n 本書, 第 i 本書的頁數為 pages[i]. 現在有 k 個人來影印這些書籍, 而每個人只能影印編號連續的一段的書, 比如乙個人可以影印 pages[0], pages[1], pages[2], 但是不可以只影印 pages[0], pages[2], pages[3] 而不影印 pages[1].
所有人影印的速度是一樣的, 影印一頁需要花費一分鐘, 並且所有人同時開始影印. 怎樣分配這 k 個人的任務, 使得這 n 本書能夠被盡快影印完?
返回完成影印任務最少需要的分鐘數.
樣例樣例 1:
輸入: pages = [3, 2, 4], k = 2
輸出: 5
解釋: 第乙個人影印前兩本書, 耗時 5 分鐘. 第二個人影印第三本書, 耗時 4 分鐘.
樣例 2:
輸入: pages = [3, 2, 4], k = 3
輸出: 4
解釋: 三個人各影印一本書.
挑戰時間複雜度 o(nk)
public
class
solution
int sum=0;
for(
int i=
1;i<=k;
++i)}}
}return dp[k]
[pages.length];}
}
計算f[0]
[0], f[0]
[1], …, f[0]
[n]• 計算f[1]
[0], f[1]
[1], …, f[1]
[n]• …
• 計算f[k][0
], f[k][1
], …, f[k]
[n]• 答案是f[k]
[n]
書籍影印 LintCode
給出乙個陣列a包含n個元素,表示n本書以及各自的頁數。現在有個k個人影印書籍,每個人只能影印連續一段編號的書,比如a 1 a 2 由第乙個人影印,但是不能a 1 a 3 由第乙個人影印,求最少需要的時間影印所有書。樣例 a 3,2,4 k 2 ifndef c437 h define c437 h ...
POJ 1088 DP 遞迴解法 迴圈解法
滑雪time limit 1000ms memory limit 65536k total submissions 93021 accepted 35199 description michael喜歡滑雪百這並不奇怪,因為滑雪的確很刺激。可是為了獲得速度,滑的區域必須向下傾斜,而且當你滑到坡底,你不...
航空路線問題(dp解法)
從左到右給你n個點,有m條邊連線這些點,問從最左邊的點到達最右邊的點再回到最左邊的點最多可以經過幾個點 除了起點外每個點最多只能被經過一次 首先,我們可以把題意轉化成從最左邊的點走兩條不相交的路線到達最右邊的點,且使經過的點最多。標程是最大費用最大流。為了限流,我們把每個點i拆成兩個點xi,yi,x...