二分 抄書 (jzoj 2123)

2021-09-10 07:09:32 字數 665 閱讀 2589

有n本書,分給m個人抄,每個人只能拿到連續的書(不能把一本書分開),問抄書最多的人要抄多少頁9 3

100 200 300 400 500 600 700 800 9001700對於10%的資料,有n<=10

對於50%的資料,有n<=500;

對於100%的資料,有n<=3000;這道題很可能想到dp但會炸,我們要用二分列舉答案,然後用一衝迴圈來把書分配給每個人

#include

#include

#include

using

namespace std;

int n,m,num,maxn,l,r,mid,p,w,b[

3005

],a[

3004];

intmain()

l=num;

//最小的

r=maxn;

//最大的

while

(l<=r)

b[++w]

+=a[i]

;//有人就換乙個人}if

(p) r=mid-1;

//二分

else l=mid+1;

//二分

}printf

("%d"

,l);

return0;

}

JZOJ 二分 抄書

與書的複製差不多 洛谷 書的複製 但是只要輸出最大的時間 樣例輸入9 3 100 200 300 400 500 600 700 800 900樣例輸出1700樣例解釋1 1500 100 200 300 400 500 2 1300 600 700 3 1700 800 900 1300 1500...

二分 CodeVS3162 抄書問題

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

UVa 714 抄書(貪心 二分)

題意 把乙個包含m個正整數的序列劃分成k個非空的連續子串行,使得每個正整數恰好屬於乙個序列。設第i個序列的各數之和為s i 你的任務是讓所有s i 的最大值盡量小。思路 最大值盡量小 問題。區間的範圍肯定是所有數中最大的乙個至所有數之和,我們可以使用二分法來確定這樣的乙個值x,x盡量小並且每個區間都...