题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1650

题意:

  数轴上有n个石子,第i个石头的坐标为Di,现在要从0跳到L,每次条都从一个石子跳到相邻的下一个石子。

  现在FJ允许你移走M个石子,问移走这M个石子后,相邻两个石子距离的最小值的最大值是多少。

题解:

  二分。

  check函数:

    (1)求出每个区间的长度len[i] = dis[i+1] - dis[i]。

    (2)对于第1到n-1个区间,如果len[i] > now,则去掉右端点的石头,cnt++。

      即:len[i+1]+=len[i]; len[i]=len[i+1];

    (3)对于第n个区间,如果len[n] > now,则只能去掉左端点的石头,cnt++。

    一旦cnt > m,就return false。

AC Code:

 #include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define MAX_N 50005 using namespace std; int n,m,l;
int ans;
int dis[MAX_N];
int len[MAX_N]; void read()
{
cin>>l>>n>>m;
dis[]=;
dis[n+]=l;
for(int i=;i<=n;i++)
{
cin>>dis[i];
}
} bool check(int now)
{
for(int i=;i<=n;i++)
{
len[i]=dis[i+]-dis[i];
}
int cnt=;
for(int i=;i<n;i++)
{
if(len[i]<now)
{
len[i+]+=len[i];
len[i]=len[i+];
cnt++;
if(cnt>m) return false;
}
}
if(len[n]<now && cnt+>m) return false;
return true;
} void solve()
{
sort(dis+,dis+n+);
int lef=;
int rig=l;
while(rig-lef>)
{
int mid=(lef+rig)/;
if(check(mid)) lef=mid;
else rig=mid;
}
if(check(rig)) ans=rig;
else ans=lef;
} void print()
{
cout<<ans<<endl;
} int main()
{
read();
solve();
print();
}

最新文章

  1. SQL Server CheckPoint的几个误区
  2. js事件(event)的运行原理
  3. AngularJS快速入门指南17:Includes
  4. dojo树的节点添加链接的例子
  5. React Native官方DEMO
  6. KMP快速字符串匹配
  7. [示例]NSDictionary编程题-字典的排序应用(iOS7班)
  8. JQuery Pagenation 知识点整理——$.extend(),与$.fn.extend()应用(20150517)
  9. Javascript面向对象编程(三):非构造函数的继承 by 阮一峰
  10. Codeforces Round #277.5 (Div. 2)---B. BerSU Ball (贪心)
  11. Angular - 预加载 Angular 模块
  12. 20170222==(MODBUS读取多个寄存器)
  13. HBase写被block的分析
  14. Tomcat日志设定
  15. spring程序打包使用该插件,不然容易报错xsd找不到
  16. nginx的日志配置
  17. Beta 冲刺 (3/7)
  18. C#中数据库事务、存储过程基本用法
  19. opencv批量修改图片尺寸
  20. (三)Jsoup 使用选择器语法查找 DOM 元素

热门文章

  1. 线程安全的概念和Synchronized(读书笔记)
  2. java查看工具jhat-windows
  3. iOS常用的加密方式
  4. (五)解决jQuery和其它库的冲突
  5. MySQL数据库 常用命令
  6. select设置innerHMTL
  7. 2个YUV视频拼接技术
  8. caffe-ubuntu1604-gtx850m-i7-4710hq----VGG_ILSVRC_16_layers.caffemodel
  9. Newtonsoft.Json读取txt文件中json数据并存到SQL service 数据库!
  10. 有关Cache –(1) linux list之中的Prefetc