poj 2456 最大化最小值(二分+贪心)
2016-08-04 14:34
316 查看
点击打开链接
#include <iostream>
#include <algorithm>
using namespace std;
const int M = 100100;
long n,c;
long a[M];
bool Check(long x)
{
int last=0; // 贪心 为了a[num]-a[last]>=x &&num<=n 成立 a[last]要尽量的小
for(int i=2;i<=c;i++)//贪心:第一头COW放在a[0]中
{
int num=last+1;
while(num<n&&a[num]-a[last]<x) // 贪心:找到第一个距离上一个stall距离大于等于d的Stall
{
num++;
}
if(num==n) return 0;
last=num;
}
return 1;
}
int main()
{
cin>>n>>c;
long inf=1<<20;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
long l=0,r=inf;//初始化解的范围
long res;
while(r>=l)
{
long mid=(l+r)/2;
if(Check(mid))
{
l=mid+1;
res=mid;
}
else
{
r=mid-1;
}
}
cout<<res<<endl;
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
const int M = 100100;
long n,c;
long a[M];
bool Check(long x)
{
int last=0; // 贪心 为了a[num]-a[last]>=x &&num<=n 成立 a[last]要尽量的小
for(int i=2;i<=c;i++)//贪心:第一头COW放在a[0]中
{
int num=last+1;
while(num<n&&a[num]-a[last]<x) // 贪心:找到第一个距离上一个stall距离大于等于d的Stall
{
num++;
}
if(num==n) return 0;
last=num;
}
return 1;
}
int main()
{
cin>>n>>c;
long inf=1<<20;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
long l=0,r=inf;//初始化解的范围
long res;
while(r>=l)
{
long mid=(l+r)/2;
if(Check(mid))
{
l=mid+1;
res=mid;
}
else
{
r=mid-1;
}
}
cout<<res<<endl;
return 0;
}
相关文章推荐
- poj 2456(二分+贪心)(最大化最小值)
- poj 2456 Aggressive cows (二分+贪心) (最大化最小值)
- 【贪心专题】POJ 2456 Aggressive cows && NYOJ 586 疯牛(最大化最小值 贪心+二分搜索)
- NYOJ 586 疯牛 & POJ 2456(二分搜索 + 贪心)(最大化最小值)
- POJ_2456_Agressive_cows_(二分,最大化最小值)
- Aggressive cows POJ 2456 (二分,最大化最小值)
- POJ 2456 Aggressive cows(二分答案,最大化最小值)
- POJ 2456 Aggressive cows (牛舍安放_二分+最大化最小值)
- 《挑战程序设计竞赛》3.1.1 二分搜索-最大化最小值 POJ1064 2456 3258 3273 3104 3045
- CSU-ACM2017暑假集训2-二分搜索 poj-2456 Aggressive cows-最大化最小值
- POJ - 2456 Aggressive cows(二分搜索:最大化最小值)
- POJ 3258 River Hopscotch(贪心+二分查找 最大化最小值)
- POJ 2456 Aggressive cows(二分-最大化最小值)
- poj 2456 Aggressive cows(二分搜索之最大化最小值)
- 【贪心专题】POJ 3258 River Hopscotch (最大化最小值 贪心+二分搜索)
- POJ 2456 Aggressive cows(二分查找最大化最小值)
- POJ 2456 Aggressive cows【二分:最大化最小值】
- POJ 2456 Aggressive cows(二分搜索最大化最小值)
- poj 2456 Aggressive cows - 二分(最大化最小值)
- POJ 2456 Aggressive cows(二分,最大化最小值)