洛谷1281 書的複製

2021-07-10 20:53:09 字數 1125 閱讀 8111

洛谷1281 書的複製

題目描述

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

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

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

輸入輸出格式

輸入格式:

第一行兩個整數m,k;(k≤m≤500)

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

輸出格式:

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

輸入輸出樣例

輸入樣例#1:

9 31 2 3 4 5 6 7 8 9

輸出樣例#1:

1 56 7

8 9【思路】

二分法+貪心。

二分最大時間t貪心判斷t是否可行,求出最小時間t。

求解t的部分也可以用dp來做,方程為:

d[i][j]=min} }

不過時間性上不比二分。

【**】

1 #include2 #include3

using

namespace

std;45

const

int maxn = 500+10;6

struct

node;

9int

t[maxn];

10int

n,m;

1112 inline bool can(int

t) 19

return

false;20

}21void print(int

t) );29}

30for(int i=ans.size()-1;i>=0;i--) cout<"

"<"\n"

;31}32

intmain()

43print(x);

44return0;

45 }

洛谷 1281 書的複製

題解 二分答案,貪心check.然後根據二分出來的答案去計算每個人抄寫的部分,注意要讓前面的人少抄寫,所以從後往前貪心即可。1 include2 include3 include4 define ll long long 5 define rg register 6 define n 200010 ...

洛谷P1281 書的複製

大多數人的錯誤原因 盡可能讓前面的人少抄寫,如果前幾個人可以不寫則不寫,對應的人輸出0 0。不過,已經修改資料,保證每個人都有活可幹。現在要把m本有順序的書分給k給人複製 抄寫 每乙個人的抄寫速度都一樣,一本書不允許給兩個 或以上 的人抄寫,分給每乙個人的書,必須是連續的,比如不能把第 一 第三 第...

dp 洛谷P1281 書的複製

本來以為水題,後來炸了 dp方程這個直接想總不難把 毫無優化的暴力轉移 但是最後輸出方案的時候,不可以按照dp的方案輸出的 因為dp它的方案是讓子節點數值最優 這樣的方案是是不可以保證總的方案最優的 所以要最後貪心輸出答案 就是後面的人經可能的取 include define ll long lon...