题目链接

点击这里

代码

#include <iostream>
#include <algorithm>using namespace std;int N, M;
const int MAX_N = 100000;
int X[MAX_N];bool try_place(int mid)
{int pre = 0;int cnt = 1;for (int i = 1; i < N; ++i){if (X[i] - X[pre] >= mid){pre = i;++cnt;}}return cnt >= M;
}void solve()
{sort(X, X + N);int min_length = 0;int max_length = 1000000000;while(max_length - min_length > 1){int mid = (min_length + max_length) / 2;// << mid << endl;if (try_place(mid)){min_length = mid;}else{max_length = mid;}}cout << min_length << endl;
}int main()
{cin.sync_with_stdio(false);cin.tie(0);cout.tie(0);cin >> N;cin >> M;for (int i = 0; i < N ; ++i){cin >> X[i];}solve();return 0;
}

总结

这是一个简单的算法题,主要是基于二分法的思想,对两牛之间的最小距离最大化,对这个值进行二分。

每次二分的结果,都需要遍历一次数组来判断是否能够满足条件。

这里简述一下思想,就是现将牛进行排序,利用sort进行排序,复杂度(nlog(n))

之后,利用排序后的结果进行简单的判断,在第一个位置放第一头牛,在至少间隔你每个二分结果的距离上放第二头牛,看看能否放大于你要放的牛的数量,如果能放大于你要放的牛的数量,就减小上界,如果不能,就增大下届,知道找到一个最优的确定整数值,作为问题的结果输出即可。

随便写写的番外

好久没写算法了,都显得生疏了,今天买了一个新的键盘,来试试手,竟然感觉这种简单的算法题都不是很流畅了,以后多练练,把状态找回来。

这里不得不推荐一下 ,两款必备的键盘,我都亲身体验过,一款是比较适合打游戏的,icbk的c87系列,青轴,真的好用。

另一款,就是我现在手里的这款键盘了——宁芝的静电容键盘,适合办公使用,35g最新的T系列,打字是真的不累,甚至是一种享受了,跟网上传闻的高级薄膜键盘真的不一样,至少也得说是顶级薄膜了吧,因为其他薄膜根本没有可比性,静电容绝对比其他的薄膜键盘好得多了。

对于办公来说,绝对是退烧级键盘了,拿来办公一整天手指都不会很累,以后我这两款键盘就满足了,成功退烧。

祝大家认真工作与学习,一起共同加油,共同进步。

Aggressive cows POJ - 2456 题解相关推荐

  1. Aggressive cows POJ - 2456

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

  2. 二分搜索 POJ 2456 Aggressive cows

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

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

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

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

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

  5. 暑期集训3:几何基础 练习题H: POJ - 2456

    2018学校暑期集训第三天--几何基础 练习题H  --   POJ - 2456 Aggressive cows Farmer John has built a new long barn, wit ...

  6. POJ 2481 Cows POJ 2352 Stars(树状数组妙用)

    题目链接:POJ 2481 Cows POJ 2352 Stars 发现这两个题目都跟求逆序数有着异曲同工之妙,通过向树状数组中插入点的位置,赋值为1,或者++,然后通过求和来判断比当前 点 &quo ...

  7. 动态规划训练20 [Treats for the Cows POJ - 3186 ]

    Treats for the Cows POJ - 3186 简单的区间DP,就不解释了. #include<iostream> #include<cstdio> using ...

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

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

  9. POJ - 2456 二分解决

    使用二分和贪心方法解决 POJ -2456 #include <iostream> #include<algorithm> #include<cstdio> #in ...

最新文章

  1. 沃森世界研讨会前瞻:AI服务 了解客户情绪
  2. mysql填加序列号(仿照oracle row_number函数)
  3. 前端三十五:图片的基本概念
  4. ubuntu 16.04 安装PhpMyAdmin
  5. 用redis构建分布式锁
  6. mysql最高权限超级用户是_MySQL中,预设的、拥有最高权限超级用户的用户名为( )...
  7. 2018-2019-1 20165237 《信息安全系统设计基础》第四周学习总结
  8. 标准库rand()函数的缺陷以及Blitz++随机数生成的简介
  9. linux信号(二)--unix环境高级编程读书笔记
  10. 计算机管理固件在哪里,itunes固件位置在哪里
  11. 寻找黑匣子——程序行为记录与跟踪
  12. 宏基aspire拆机触摸_Acer宏基E1471G笔记本怎么拆机拆主板?
  13. 在Win10系统中用mimikatz抓取明文密码
  14. 基于yolov3 v4 v5的电梯轿厢下的电动车目标检测
  15. 无人机集群通信网络拓扑重构及关键技术研究∗
  16. iOS开发之—— XCODE真机调试设备连接一直忙碌如何处理!(真机调试各种错误提示解决)...
  17. swper实现分页器样式修改
  18. windows server 批量取消域用户属性“密码永不过期”
  19. 适用于高级别自动驾驶的驾驶员可预见误用仿真测试
  20. 如何从GitHub上下载一个项目中的单个文件或者子文件夹

热门文章

  1. 仓库管理存在的问题及改进对策?
  2. ZYNQ开发系列——为PS和PL的交互做准备
  3. 良心总结!Jupyter Notebook 从小白到高手,保姆教程来了!
  4. 近两万字小程序攻略发布了
  5. Shell 中的颜色
  6. 食堂基础设施_基础设施美丽
  7. 微信小程序 —— 快递查询Demo(入门)
  8. python网页结构分析图_Python爬虫解析网页的4种方式 值得收藏
  9. 怎么传文件到服务器上,怎样传文件到服务器上
  10. 小丑Joker.one全新模式