POJ 2456 Aggressive cows(二分-最大化最小值)

589人阅读 评论(0) 收藏 举报
分类:

Description
农夫约翰搭了一间有N间牛舍的小屋。牛舍排在一条直线上,第i号牛舍在xi的位置。但是他的M头牛对小屋很不满意,因此经常相互攻击。约翰为了防止牛之间相互伤害,因此决定把每头牛都放在离其他牛尽可能远的牛舍。也就是说要最大化最近的两头牛之间的距离
Input
第一行两个整数N和M表示牛舍数和牛数,之后N行每行一个整数表示牛舍位置
Output
输出两头牛之间距离的最大值
Sample Input
5 3
1
2
8
4
9
Sample Output
3
Solution
最大化最小值,二分距离即可
Code

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn 100000
#define INF 1000000000
int N,M;
int x[maxn];
bool C(int d)//判断是否满足条件 
{
    int last=0;
    for(int i=1;i<M;i++)
    {
        int crt=last+1;
        while(crt<N&&x[crt]-x[last]<d)
        {
            crt++;
        } 
        if(crt==N)
            return false;
        last=crt;
    }
    return true;
}
int main()
{
    scanf("%d%d",&N,&M);
    for(int i=0;i<N;i++)
        scanf("%d",&x[i]);
    sort(x,x+N);//将牛舍位置排序 
    int lb=0,ub=INF;//初始化解的存在范围 
    while(ub-lb>1)
    {
        int mid=(lb+ub)/2;
        if(C(mid))
            lb=mid;
        else
            ub=mid;
    }
    printf("%d\n",lb);
    return 0;
}
查看评论

POJ 2456 Aggressive cows (贪心 + 二分)

Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9797   Accepted: ...
  • a2459956664
  • a2459956664
  • 2016-04-10 18:17:19
  • 976

Aggressive cows POJ 2456 (二分,最大化最小值)

Aggressive cows Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14977   Accepted:...
  • lwgkzl
  • lwgkzl
  • 2017-07-25 01:16:53
  • 137

POJ 2456 Aggressive cows(二分答案,最大化最小值)

题目链接 题意:给出n个牛舍坐标(在一直线上),然后有m个牛要入住,现在问相邻牛之间的最小距离最大是几 解答:二分答案,函数ok(d)检查距离是d合法与否 #include #include//#...
  • u013167299
  • u013167299
  • 2015-11-21 16:35:57
  • 497

POJ 2456 Aggressive cows(二分查找 最大化最小值)

题意:给出n个牛棚的位置,选择其中的m个给牛住,使得牛之间的距离的最小值最大。 首先我们可以知道距离的最小值一定产生于相邻的牛之间,所以要保证相邻牛之间的距离大于等于这个最小值d。所以把牛棚的位置...
  • secfly
  • secfly
  • 2016-03-25 16:25:55
  • 375

POJ 2456 Aggressive cows (牛舍安放_二分+最大化最小值)

Description Farmer John has built a new long barn, with N (2 His C (2
  • h1021456873
  • h1021456873
  • 2015-09-24 17:59:55
  • 1095

POJ 25456 Aggressive cows 【二分最大化最小值】

Aggressive cowsTime Limit:1000MS    Memory Limit:65536KB    64bit IO Format:%lld & %llu SubmitSta...
  • hellohelloC
  • hellohelloC
  • 2016-08-04 14:37:31
  • 232

牛舍

【题目描述】 农夫约翰有N(1
  • qq_31640513
  • qq_31640513
  • 2016-11-24 12:25:32
  • 371

二分搜索

对《挑战程序设计竞赛》的一个记录 第三章  出类拔萃——中级篇 3.1 二分搜索 (1) 从有序数组中查找某个值 这个是最常见的二分搜索,在这就不多说了 (2)假定一个解并判断是否可行 之前不知道原来...
  • zhoufenqin
  • zhoufenqin
  • 2015-08-16 20:40:57
  • 455

POJ-2456 Aggressive cows

#include #include #include using namespace std; int n, c; const int maxn = 1000010; long long l...
  • somniloquy_
  • somniloquy_
  • 2015-07-27 17:03:57
  • 201

POJ 2456 Aggressive cows(二分-最大化最小值)

Description 农夫约翰搭了一间有N间牛舍的小屋。牛舍排在一条直线上,第i号牛舍在xi的位置。但是他的M头牛对小屋很不满意,因此经常相互攻击。约翰为了防止牛之间相互伤害,因此决定把每头牛都放...
  • V5ZSQ
  • V5ZSQ
  • 2015-07-10 13:23:06
  • 589
    个人资料
    持之以恒
    等级:
    访问量: 59万+
    积分: 2万+
    排名: 283
    最新评论