您的位置:首页 > 其它

二分-H Aggressive cows (POJ - 2456 )

2018-02-14 14:42 274 查看
最大化最小值#include <stdio.h>
#include <algorithm>

using namespace std;

int c,n,count;
int a[100005];
int panduan (int mid)
{
int lpos = 0 , move = n-c;
for (int i = 1;i < n;++i)
{
if (a[i]-a[lpos] <mid) move--;
else lpos = i;
}
return move >=0 ? 1:0;
}

int erfen(int r)
{
int l = a[0];
int mid ;
while (r>l+1)
{
mid = (l + r ) / 2;

if (panduan(mid)) l = mid;
else r = mid;
}
return l;
}

int main()
{
scanf("%d%d",&n,&c);
for (int i = 0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);

printf("%d",erfen(a[n-1]-a[0]));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: