二分搜答案。
這是乙個最大最小值問題,用二分找到乙個數字,表示最小距離,帶入到石頭裡面,看能否滿足至少有m-n個石頭塊能夠滿足最小距離x。不斷二分去找到最大值。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define up(i,a,b) for(int i=a;i#define dw(i,a,b) for(int i=a;i>b;i--)
#define upd(i,a,b) for(int i=a;i<=b;i++)
#define dwd(i,a,b) for(int i=a;i>=b;i--)
//#define local
typedef
long
long ll;
const
double esp =
1e-6
;const
double pi =
acos(-
1.0)
;const
long
long inf =
0x3f3f3f3f
;using
namespace std;
typedef pair<
int,
int> pir;
int l, m, n;
int a[
500004];
bool
judge
(int x)
return
true;}
intmain()
a[0]=
0;a[n +1]
= l;
sort
(a, a + n +2)
;//需要先排序
int lf =0;
int rt = l+2;
int mid =0;
while
(rt - lf >1)
//左閉右開區間取決於if條件的判斷
cout << lf;
return0;
}
poj 3258 二分最小值最大
題意 有一些石頭排成一條線,第乙個和最後乙個不能去掉。其餘的共可以去掉m塊,要使去掉後石頭間距的最小值最大。解析 二分石頭,最小值最大。include include include include include include include include include include in...
poj 3258 二分法求最小值最大
這道題和poj3273 剛好是兩個相反的例子,乙個是求最大值最小,這個是求最小值最大。就是把一串數分成若干組,使得 組和 該組所有數的和 最大的哪一組的值最大或者最小。應用二分的思想,在距離最小值和總和之間二分查詢。如下 include include include include define ...
POJ 3258 兔子產子
時間限制 1000ms 記憶體限制 65536kb 描述從前有一對長壽兔子,它們每乙個月生一對兔子,新生的小兔子兩個月就長大了,在第二個月的月底開始生它們的下一代小兔子,這樣一代一代生下去,求解兔子增長數量的數列。輸入第1行是測試資料的組數n,後面跟著n行輸入。每組測試資料佔1行,包括乙個正整數a ...