Aggressive cows
思路:根据题目描述,我们需要求解ans的最大值,可以使用二分求解,范围为0-max.
每次都尝试一下ans,如果尝试成功,说明右边区间[M+1, R]可能还有更大的解,如果尝试失败,就在区间[L, M+1]中继续尝试。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <cmath>
#include <limits.h>
using namespace std;typedef long long LL;static vector<LL> V;static LL N, C;bool check(LL x)      //判断x是否可行
{LL cc = 1;LL pre = V[0];for (size_t i = 0; i < V.size(); i++) {if(V[i] - pre >= x){cc++;pre = V[i];}}return cc >= C;                //如果最大间距为x时,最多可以存放下的数量cc大于等于C说明可行。
}void work()
{LL L = 1;LL R = 1000000000/C;            // 必须为这个,刚开始L=0, R = N+1,错了3次LL ans = 1;while (L <= R) {LL M = L + (R-L) / 2;if(check(M)){ans = M;L = M + 1;}else {R = M - 1;}}cout << ans << endl;
}int main()
{freopen("E:\\Desktop\\data.txt", "r", stdin);cin  >> N >> C;for (LL i = 0; i < N; i++) {LL x;cin >> x;V.push_back(x);}sort(V.begin(), V.end());work();return 0;
}

Aggressive cows 基础二分相关推荐

  1. poj 2456 Aggressive cows 【二分+最大化最小值】

    题目链接:http://poj.org/problem?id=2456 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 210 ...

  2. poj2456 Aggressive cows(二分查找)

    https://vjudge.net/problem/POJ-2456 二分,从最大长度开始,不断折半试,如果牛全放下了,就是可行,修改下界,否则改上届. 1 #include<iostream ...

  3. POJ 2456 Aggressive cows(二分答案)

    Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22674 Accepted: 10636 Des ...

  4. BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )

    最小最大...又是经典的二分答案做法.. -------------------------------------------------------------------------- #inc ...

  5. 二分入门——poj 2456 aggressive cows

    这是一道二分的神奇贪心题,先上题目 Aggressive cows Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11714 A ...

  6. Aggressive cows POJ - 2456

    2456 -- Aggressive cows 题目大意:有c只牛,要把他们放在n个屋子里,每个屋子放一只牛,每个屋子都在一根数轴上,给出他们的坐标,要让每个屋子间的最小距离尽可能的大,问这个最大距离 ...

  7. 二分搜索 POJ 2456 Aggressive cows

    题目传送门 1 /* 2 二分搜索:搜索安排最近牛的距离不小于d 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #incl ...

  8. 从两道基础二分算法题谈check函数的写法

    第一题:愤怒的牛 loj链接 两道题目都是基础二分的模板题,先看第一题,题意为总共有nnn间牛舍,mmm头牛,要将mmm头牛安排在nnn间牛舍,为防止牛互相攻击,使两头牛之间的最小距离最大!最大! 最 ...

  9. Aggressive cows POJ2456

    Aggressive cows(愤怒的牛)(分治) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 40455 Accepted: ...

  10. POJ 2456 - Aggressive cows(二分)

    Description Farmer John has built a new long barn, with N (2 <= N <= 100,000) stalls. The stal ...

最新文章

  1. CSP认证201709-1 打酱油[C++题解]:贪心
  2. www.pythonchanlleges.com
  3. Hit or Miss
  4. pwn入门-PLT表与GOT表、libc入门
  5. 转载:SendMessage()这个函数有很多奇妙的用途
  6. 多个openstack合并成一个openstack的多个region
  7. URL2Video:把网页自动创建为短视频
  8. 于数据交换格式XML和JSON的比较
  9. c语言固定长度的字符串,【分享】C语言动态长度字符串
  10. jzoj1161-机器人M号【欧拉函数,dp】
  11. 关于Python的一些学习笔记(小白式笔记,持续更新)
  12. DataList多行数据后如何添加一条分隔线
  13. 三极管工作原理_三极管的基本工作原理,这个讲的很全
  14. 启航~算法刷题第一天
  15. 公钥、私钥、数字证书的概念 (讲得很明吧,通俗易懂)
  16. css实现在一行显示多余部分显示省略号
  17. php arcsin,三角函数在线计算器
  18. python模糊层次分析法案例_python实现AHP算法的方法实例(层次分析法)
  19. mastercam9.1按alt键卡机,mastercam输入参数卡机需要win10输入法兼容性设置
  20. git commit最佳实践:conventional commits

热门文章

  1. 【 移动硬盘安装Ubuntu18.04】
  2. spoj COT COT2
  3. 事务的四大特性( A C I D )
  4. 关于goole浏览器出现页面崩溃情况的解决
  5. Port Security (端口安全)
  6. 解读微信第三方平台-代小程序开发
  7. 一个简单帆软报表制作基础步骤
  8. cpp头文件方法大全
  9. html5 聊天机器人,发挥你想象力,BotUI – 聊天机器人 JS 框架
  10. 戏谈编程:那些程序员的级别陷阱,你遇到过吗