地址 http://poj.org/problem?id=2456

解法

使用二分逐个尝试间隔距离 能否满足要求

检验是否满足要求的函数 使用的思想是贪心 第一个点放一头牛 后面大于等于尝试的距离才放置一头牛 如果能放置完所有的牛 那么就继续增加尝试的距离 否则就减少尝试的距离

代码

 #include <iostream>
#include <vector>
#include <math.h>
#include <algorithm> using namespace std; /*
Sample Input
5 3
1
2
8
4
9
Sample Output
3
*/ vector<int> v; int n, m; bool check(int d)
{
int mm=m-; int lastselect = v[]; for (int i = ; i < n; i++) {
if (v[i] - lastselect >= d) {
mm--;
lastselect = v[i];
if (mm == )
return false;
}
} return true;
} int main()
{
cin >> n >> m; for (int i = ; i < n; i++) {
int t; cin >> t;
v.push_back(t);
}
if (m == ) {
printf("0\n");
return ;
} sort(v.begin(), v.end()); //距离的极端取值k
int l = ; int r = v.back(); while (l<r) {
int mid = l + r >> ;
if (check(mid)) r = mid;
else {
l = mid + ;
}
} cout << r- << endl; return ;
}

最新文章

  1. ASP.NET 正则替换URL参数值
  2. UIWindow &amp; UIWindowLevel
  3. 【练习】oracel获取当前session的id方法
  4. [译] MYSQL索引最佳实践
  5. shell tips
  6. 卸载金山猎豹免费WIfi后,上不了网的解决办法
  7. CocoaPods 使用本地代码
  8. C# 中DataTable转成模型List
  9. 对象属性封装到map中
  10. Python学习 之 走进python
  11. 如何把Excel另存为XML格式文件(快速转换)
  12. IC封装图片认识(二):TO封装图
  13. 前端学习笔记(zepto或jquery)——对li标签的相关操作(四)
  14. Jenkins+SonarQube代码质量检查自动化
  15. Git版本回退和撤销修改的区别
  16. Problem : 1196 ( Lowest Bit )
  17. python进行md5加密
  18. vs中 VMDebugger未能加载导致异常
  19. LocalDateTime反序列化,LocalDateTime格式化
  20. java 两个List集合各种情况对比处理

热门文章

  1. Koa 本地搭建 HTTPS 环境
  2. .NET 的未来:.NET 5
  3. 25.Zabbix入门必备
  4. elasticsearch对无意义的词进行屏蔽——停用词
  5. QT--图灵机器人
  6. 51-overlay 是如何隔离的?
  7. XTTS Creates Alias on Destination when Source and Destination use ASM (Doc ID 2351123.1)
  8. 逆向学习周记-C语言空函数
  9. 07-Node.js学习笔记-路由
  10. [Linux]centos下安装memcached