poj 2456 Aggressive cows 二分 题解《挑战程序设计竞赛》
2024-10-18 11:04:25
地址 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 ;
}
最新文章
- ASP.NET 正则替换URL参数值
- UIWindow &; UIWindowLevel
- 【练习】oracel获取当前session的id方法
- [译] MYSQL索引最佳实践
- shell tips
- 卸载金山猎豹免费WIfi后,上不了网的解决办法
- CocoaPods 使用本地代码
- C# 中DataTable转成模型List
- 对象属性封装到map中
- Python学习 之 走进python
- 如何把Excel另存为XML格式文件(快速转换)
- IC封装图片认识(二):TO封装图
- 前端学习笔记(zepto或jquery)——对li标签的相关操作(四)
- Jenkins+SonarQube代码质量检查自动化
- Git版本回退和撤销修改的区别
- Problem : 1196 ( Lowest Bit )
- python进行md5加密
- vs中 VMDebugger未能加载导致异常
- LocalDateTime反序列化,LocalDateTime格式化
- java 两个List集合各种情况对比处理
热门文章
- Koa 本地搭建 HTTPS 环境
- .NET 的未来:.NET 5
- 25.Zabbix入门必备
- elasticsearch对无意义的词进行屏蔽——停用词
- QT--图灵机器人
- 51-overlay 是如何隔离的?
- XTTS Creates Alias on Destination when Source and Destination use ASM (Doc ID 2351123.1)
- 逆向学习周记-C语言空函数
- 07-Node.js学习笔记-路由
- [Linux]centos下安装memcached