陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?
輸入格式:
第一行,兩個整數,a,b。(b<=a<=100000)
第二行,a個整數,分別為這a個瓶蓋座標。
輸出格式:
僅乙個整數,為所求答案。
輸入樣例#1:複製
5 3輸出樣例#1:複製1 2 3 4 5
2限時3秒
此題的思想:就是列舉一些中間值,然後判斷他們這樣分配是否滿足?,滿足就猜更大的,否則就猜小的;
所以是二分加貪心
#include typedef long long ll;
using namespace std;
ll n,total,m,a[100005];
ll r = 1e9,l = 0,now;
int check(ll mi)
if(total >= m)
return 1;
}return 0;
}int main()
sort(a,a+n);
while(r - l > 1)
cout << l << endl;
return 0;
}
洛谷P1316 丟瓶蓋(二分)
陶陶是個貪玩的孩子,他在地上丟了a個瓶蓋,為了簡化問題,我們可以當作這a個瓶蓋丟在一條直線上,現在他想從這些瓶蓋裡找出b個,使得距離最近的2個距離最大,他想知道,最大可以到多少呢?輸入格式 第一行,兩個整數,a,b。b a 100000 第二行,a個整數,分別為這a個瓶蓋座標。輸出格式 僅乙個整數,...
二分 最大的最小值
mad jim jaspers為了證明釹磁鐵的強大,拿來了乙個有n個小槽的長木條,m個釹磁鐵,第i個小槽在xi的位置上,為了不讓磁鐵互相吸引,每塊磁鐵離其他磁鐵的距離應該盡可能的大。請你幫mjj寫乙個程式,求出所有磁鐵之間最小距離的最大值。只要磁鐵距離大於等於1就不會互相吸引。輸入格式 第一行兩個數...
二分 最小值最大化
問題描述 記得上學那會,fbs同學經常會欺負蘿蔔同學。有一次,他出了這麼一道題目,想為難一下蘿蔔同學。題目是這樣的 有n個整數x i,x i值的範圍從0到1000000000。要從中選出c個數 2 c n 使得任意兩個數差的絕對值的最小值盡可能大,求這個最大值。由於資料太大,這次蘿蔔同學的確被難住了...