3162 抄書問題(劃分dp)

2022-05-03 17:03:09 字數 1164 閱讀 6881

3162抄書問題

時間限制: 1 s

空間限制: 128000 kb

題目等級 : 鑽石 diamond

題解檢視執行結果

題目描述description

現在要把m本有順序的書分給k個人複製(抄寫),每乙個人的抄寫速度都一樣,一本書不允許給兩個(或以上)的人抄寫,分給每乙個人的書,必須是連續的,比如不能把第

一、第三、第四本數給同乙個人抄寫。現在請你設計一種方案,使得複製時間最短。複製時間為抄寫頁數最多的人用去的時間。

輸入描述input description

第一行兩個整數m、k;(k<=m<=100)

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

輸出描述output description

共k行,每行兩個正整數,第i行表示第i個人抄寫的書的起始編號和終止編號。k行的起始編號應該從小到大排列,如果有多解,則盡可能讓前面的人少抄寫。

樣例輸入sample input

9 31 2 3 4 5 6 7 8 9

樣例輸出sample output

1 56 7

8 9資料範圍及提示data size & hint

詳見試題

分類標籤 tags 點此展開 

#includeusing

namespace

std;

#define n 510

inta[n],d[n],f[n][n],n,m,k;

void

out(int i,int

j) t=i;x=a[i];

while(x+a[t-1]<=f[k][m])

x+=a[--t];

out(t-1,j-1

); cout

<'

'}int

main()

codevs 3162 抄書問題

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

codevs3162 抄書問題

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

codevs 3162 抄書問題

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