注意答案的二分性質,必須要滿足在滿足給定條件的所有情況的時候都滿足要求才能更新ans。
#include
using
namespace std;
typedef
long
long ll;
inline ll in()
while
(c>=
'0'&&c<=
'9') res=res*
10+c-
48,c=
getchar()
;return p*res;
}void
out(ll x)
const
int maxn =
5e4+5;
int a[maxn]
;int
main()
//這裡,當cnt小於等於k時,任何的cnt一定能滿足給定條件,因為在最大值被限定的情況下能分cnt組,那麼一定可以分至少cnt組。
if(cnt > k) l = m +1;
else ans = m, r = m -1;
}out
(ans)
;return0;
}
zzuli 1919 二分 最大值最小化
description 晴天想把乙個包含n個整數的序列a分成連續的若干段,且和最大的一段的值最小,但他有強迫症,分的段數不能超過m段,然後他就不會分了。他想問你這個分出來的和最大的一段的和最小值是多少?input 第一行輸入乙個整數t,代表有t組測試資料。每組資料第一行為兩個整數n,m分別代表序列的...
POJ 3273(二分,最小化最大值)
和這道題一樣了 description 聰哥在暑假參加了打零工的活動,這個活動分為n個工作日,每個工作日的工資為vi。有m個結算工錢的時間,聰哥可以自由安排這些時間,也就是說什麼時候拿錢,老闆說的不算,聰哥才有發言權!因為聰哥是土豪,他是老闆的老闆 聰哥不喜歡身上一次性有太多的錢,於是他想安排一下拿...
洛谷 1182 二分 最小化最大值
對於給定的乙個長度為n的正整數數列a i,現要將其分成m m n 段,並要求每段連續,且每段和的最大值最小。關於最大值最小 例如一數列42451要分成3段 將其如下分段 42 45 1 第一段和為6,第2段和為9,第3段和為1,和最大值為9。將其如下分段 4 24 51 第一段和為4,第2段和為6,...