洛谷P1824進擊的奶牛(貪心+整數型二分答案)
阿新 • • 發佈:2018-12-26
#include<iostream> #include<cstdio> #include<cstring> #include<string> #include<algorithm> using namespace std; const int maxn=100007; const double eps=1e-8; int n,c; int x[maxn]; int le=1,ri,mid; int main(){ scanf("%d%d",&n,&c); for(int i=0;i<n;i++){ scanf("%d",&x[i]); } sort(x,x+n); ri=x[n-1]; int last=1; while(le<=ri){ mid=(le+ri)/2; if(last==mid){ break; } last=mid; int sum=x[0]+mid,cnt=1; for(int i=2;i<n;i++){ if(sum<=x[i]){ cnt++; sum=x[i]+mid; } } if(cnt<c){ ri=mid-1; } else le=mid+1; } printf("%d\n",r1); }