羅区P3853 - 半数の回答

問題の意味:オリジナルのN点に線分Lの長さは、今、挿入ポイントKを必要とするので、点間の最短距離。

ソリューション:二分答え

書式#include <iostreamの> 
名前空間の使用はstdを。
const int型MAX = 100000 ; 
INTのL、N、K、[MAX + 5 ]、R、L。
ブールP(INT X)。 int型のmain() {  IOS :: sync_with_stdio(偽); cin.tie(0)。cout.tie(0 )。int型の半ば。CIN >> L >> N >> K。以下のために(INT i = 1; iが= <N; iは++ )CIN >> [I]。[0] = 0; [N + 1] = Lと、R = L。L = 0 (L <つつR){ミッド= L + R >> 1 もし(P(MID))、R = ミッド。リットル=ミッド+ 1 ; } COUT << L。0を返します} BOOL P(INT X){INT = 0使用最後、。最後= [1 ]。以下のために(INT I = 2; iが<= N + 1、iは++ ){IF([I] -last <=x)の最後= [I]。{([I] -last>ながらX){++使用最後の+ = X; }最後= MAX(最後に、[I])。}}もし(使用> k)の戻り0 ; 1を返します}

 

おすすめ

転載: www.cnblogs.com/nenT/p/11611952.html