書的複製 normal DP

2021-10-01 10:24:39 字數 1110 閱讀 3608

time limit:1000ms memory limit:65536k

total submit:164 accepted:83

description

現在要把m

mm本有順序的書分給k

kk個人複製(抄寫),每個人的抄寫速度都一樣,一本書不允許分給兩個或兩個以上的人抄寫,分給每個人的書,必須是連續的,比如不能把第

一、第三、第四本書給同乙個人抄寫。

現在請你設計一種方案,使得複製時間最短。複製時間為抄寫最多的人用去的時間。

input

第一行兩個整數,m,k

(k

<=m

<

=500

)m,k(k<=m<=500)

m,k(

k<=m

<=5

00)第二行為m個整數,第i個數表示第i本書的頁數。

output

最短時間

sample input

9 31 2 3 4 5 6 7 8 9

sample output

17這道題可以用dpdp

dp解 (可一開始我還是打了爆搜)

設f [k

][n]

f[k][n]

f[k][n

]表示前k

kk個人抄寫m

mm本書,需要的最短時間。我先做了乙個字首和,i

ii列舉人數,j

jj

#include

#include

#include

using namespace std;

const int maxn=

1000000000

;int a[

600]

,f[600][

600]

;//f是dp

int main()

for(int i=

1;i<=k;i++

)//列舉人數}}

cout<[m];

}

書的複製 題解

現在要把m本有順序的書分給k個人複製 抄寫 每個人的抄寫速度都一樣,一本書不允許分給兩個或兩個以上的人抄寫,分給每個人的書,必須是連續的,比如不能把第 一 第三 第四本書給同乙個人抄寫。現在請你設計一種方案,使得複製時間最短。複製時間為抄寫最多的人用去的時間。第一行兩個整數,m,k k m 500 ...

二解 書的複製

題目詳見 本題有兩種解法 一.動態規劃 類似於乘積最大那道題,關鍵是劃分好書的分配方式,因為書本抄寫是連續的,因此該問題是滿足無後效性的,我們可以以抄書的人數為階段,dp i j 表示前i個人抄寫j本書需要抄寫所消耗的最少時間.動態規劃轉移方程為 dp i j min dp i j max dp i...

書的複製(抄書問題)

現在要把 m 本有順序的書分給 k 給人複製 抄寫 每乙個人的抄寫速度都一樣,一本書不允許給兩個 或以上 的人抄寫,分給每乙個人的書,必須是連續的,比如不能把第 一 第三 第四本書給同乙個人抄寫。現在請你設計一種方案,使得複製時間最短。輸出共 k 行,每行兩個整數,第 i 行表示第 i 個人抄寫的書...