JZOJ 二分 抄書

2021-09-10 07:02:14 字數 921 閱讀 6744

與書的複製差不多

洛谷 書的複製

但是只要輸出最大的時間

樣例輸入

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<1700

最大的是1700

用二分找答案

#include

#include

using

namespace std;

const

int maxx=

1e9;

int wh[

20025

],a[

20025];

int n,m,l,r,t,tot,ans;

bool

book

(int k)

//尋找最小的答案

} tot++;if

(tot>m)

return0;

//證明答案比ans大

else ans=

min(ans,k)

;//求最大

return1;

}int

main()

ans=maxx;

while

(l<=r)

//二分

printf

("%d"

,ans)

;fclose

(stdin);

fclose

(stdout);

return0;

}

二分 抄書 (jzoj 2123)

有n本書,分給m個人抄,每個人只能拿到連續的書 不能把一本書分開 問抄書最多的人要抄多少頁9 3 100 200 300 400 500 600 700 800 9001700對於10 的資料,有n 10 對於50 的資料,有n 500 對於100 的資料,有n 3000 這道題很可能想到dp但會炸...

二分 CodeVS3162 抄書問題

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

UVa 714 抄書(貪心 二分)

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