POJ 2456 Aggressive cows(二分答案,最大化最小值)
2015-11-21 16:35
501 查看
题目链接
题意:给出n个牛舍坐标(在一直线上),然后有m个牛要入住,现在问相邻牛之间的最小距离最大是几
解答:二分答案,函数ok(d)检查距离是d合法与否
题意:给出n个牛舍坐标(在一直线上),然后有m个牛要入住,现在问相邻牛之间的最小距离最大是几
解答:二分答案,函数ok(d)检查距离是d合法与否
#include<cstdio> #include<algorithm> //#include<bits/stdc++.h> using namespace std; #define LL long long #define pb push_back #define X first #define Y second #define cl(a,b) memset(a,b,sizeof(a)) typedef pair<long long ,long long > P; const int maxn=100005; const LL inf=1LL<<45; const LL mod=1e9+7; LL a[maxn]; int n,m; bool ok(int d){ int last=0; for(int i=1;i<m;i++){ int cur=last+1; while(cur<n&&a[last]+d>=a[cur])cur++; if(cur==n)return false; last=cur; } return true; } void solve(){ int l=0,r=999999999; while(r-l>1){ int mid=(l+r)/2; if(ok(mid))l=mid; else r=mid; } printf("%d\n",r); } int main(){ while(~scanf("%d%d",&n,&m)){ for(int i=0;i<n;i++){ scanf("%lld",&a[i]); } sort(a,a+n); solve(); } return 0; }
相关文章推荐
- Android官方文档翻译 四 1.2Running Your App
- 条件控制
- IE8下,去除iframe的边框
- c++任意数字转换为字符串
- python下pickle和file用法
- Windows Server 2008 R2常规设置及基本安全策略
- 关于Arcengine实现Geoprocessor GenerateNearTable近邻分析出现COM错误问题
- LeetCode OJ:Gray Code(格林码)
- PLSQL Developer 完美支持Oracle64位问题
- 函数指针的声明与使用
- matlab:创建cell结构体
- c++11线程管理,RAII方式等待异常环境下线程结束
- linux 常用基础命令 chkconfig 详细介绍
- codeforces round #332
- [笔记] Convex Optimization 2015.11.18
- 索引 概述
- Markdown简介
- 在Linux里设置环境变量的方法(export PATH)
- 话说正确率、召回率和F值
- win7系统怎么用笔记本做wifi热点