基礎練習 二分 洛谷1281 書的複製題解

2021-07-05 20:51:49 字數 994 閱讀 5195

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

輸入格式:

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

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

輸出格式:

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

輸入樣例#1:

9 3

1 2 3 4 5 6 7 8 9

輸出樣例#1:

1 5

6 78 9

洛谷的格式早已無力吐槽

顯然是二分裸,codevs有三個版本,一會兒也要寫一下

只是要求輸出每個人抄的書

結果這麼乙個簡單的**出了很多低階錯誤,主要是思路上和細節上的。比如cnt最後忘了--,比如開始寫的邊檢查是否can邊儲存每個人抄哪幾本書,忽略了正解會被二分其他嘗試覆蓋···

具體看**吧

//âå¹è1281 êéµä¸´öæ ¶þ·ö

#include

#include

#include

using namespace std;

const int maxn=500+10;

int m,k;

int a[maxn],b[maxn][3];

bool can(int x)

} now=x;

} cnt--;

if (cnt>=m||ok) return true;

else return false;

}int main()

while (l

=1;i--)

}b[i][1]=cnt+1;

now=l;

} for (int i=1;i<=k;i++)

return 0;

}

——稻花香裡說豐年,聽取蛙聲一片

洛谷1281 書的複製

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

洛谷 1281 書的複製

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

洛谷P1281 書的複製

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