这题虽是二分的题,但感觉就是别扭,很难想清楚怎么设置判断。我也是看了别人的判断过程及判断依据后才成功ac。值得收藏的二分题。
判断的过程我尽量解释一下,有不清楚的地方请参阅网址:
http://www.cnblogs.com/jingqi814/p/3581553.html

这样讲应该能理解的:
1.首先去掉M个石头后两个石头之间会有最小的距离,本题让求这个最小距离的最大值。
2.我们二分是在去掉M个石头的前提下,对可能的最小距离的区间进行二分,取值区间是0到L,目的是求那个最大的最小距离,一直去逼近那个最大的最小距离。
3.判断的过程是只要某个区间只要小于mid,这个区间的又端石头就能去掉,因为最小的距离是mid,要不mid小的话当然要去掉,然后看能够去掉的数量的总和 和M的关系。
4.如果大于M,肯定是mid太大了;如果小于M,太小了;如果等于M,可能是正确答案,但还要判断有没有更大的mid使符合等于M的条件。

#include<stdio.h>
#include<algorithm>
using namespace std;
const int MAXN = 5*1e4+10;
int a[MAXN];
int L,N,M;
bool judge(int mid) {int sum=0,start=0;for(int l=1; l<=N+1; l++) {if(a[l]-a[start]<mid) {sum++;} elsestart=l;}return sum<=M;
}
int main() {scanf("%d%d%d",&L,&N,&M);for(int l=1; l<=N; l++) {scanf("%d",&a[l]);}a[N+1]=L;sort(a+1,a+N+1);int l=0,r=L;int mid;int ans;while(l<=r) {mid=l+r>>1;if(judge(mid)) {ans=mid;l=mid+1;} elser=mid-1;}printf("%d\n",ans);return 0;
}

http://acm.hust.edu.cn/vjudge/contest/123973#problem/G

【poj3258】River Hopscotch相关推荐

  1. 【POJ3258】River Hopscotch 二分答案,贪心check

    题意:第一行knm,有n+2个石头在数轴上(k是第n+2个石头离第一个的距离),要删掉m个,使两两间距的最小值最大,并求这个值. 题解:排序一下,然后扫一遍贪心决定删哪些. #include < ...

  2. 【二分法】POJ3258-River Hopscotch

    [抱大腿]啊啊啊又是一道恶心的题目!!!这道题是出在二分法里面的,因为这跟前面的一道青蛙过河的题特别像但是不一样,按照青蛙过河那个思路来走根本行不通,正好要按照跟那个思路相反的想法来想才行~ [题目] ...

  3. 【POJ No. 3258】 跳房子游戏 River Hopscotch

    [POJ No. 3258] 跳房子游戏 River Hopscotch POJ题目地址 [题意] 跳房子游戏指从河中的一块石头跳到另一块石头,这发生在一条又长又直的河流中,从一块石头开始,到另一块石 ...

  4. 【HDOJ图论题集】【转】

    1 =============================以下是最小生成树+并查集====================================== 2 [HDU] 3 1213 How ...

  5. 【机器翻译】transformer

    [机器翻译]transformer 2018-05-01 |  ML , app , nlp , translation , 2. 主流model-研究现状 , 2. NMT , transforme ...

  6. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  7. 机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】

    转自:http://blog.exbot.net/archives/2966 导语:本期公开课面向想入手ROS却又不知从何下手的小伙伴,为大家梳理好学习思路. ROS和Android一样是开源的,功能 ...

  8. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  9. 【评测】内毒素检测方法盘点

    内毒素是包在革兰氏阴性细菌外膜中的脂多糖(Lipopolysaccharide,LPS).它们代表了制药和医疗设备企业而言最重要的 热原.内毒素之所以重要,是因为它们在环境中无处不在,热稳定好且不可以 ...

最新文章

  1. 从源码分析DEARGUI之菜单
  2. 20155325 2016-2017-2 《Java程序设计》第3周学习总结
  3. sql用什么替代or
  4. 成功解决but is 0 and 2 (computed from start 0 and end 9223372 over shape with rank 2 and stride-1)
  5. 《PHP和MySQL Web开发从新手到高手(第5版)》一1.7 万事俱备,摩拳擦掌
  6. Objective-C马路成魔【14-关键C语言功能】
  7. 树形结构 —— 树与二叉树 —— 树的重心
  8. Top K 算法详解
  9. c语言程序设计100题,编程题(c语言编程题库100题)
  10. PLM项目目标及阶段
  11. 超全整理——相机标定知识汇总
  12. Image Enhancement
  13. pyspark steaming 连接kafka数据实时处理(也可以对接flume+kafka+spark)
  14. ubuntu 强制关闭程序或窗口方法
  15. 先序序列和中序序列构造二叉树,中序序列和后序序列构造二叉树
  16. HTML+CSS+JavaScript+JQuery
  17. 机器人教育发展_机器人教育为什么火?本文带您了解未来机器人教育的发展趋势...
  18. 网站关键词排名到前3名SEO技巧
  19. 解决VMware 16在Win7虚拟机安装VMware Tools时报 “Windows 无法验证此驱动程序软件的发布者”问题
  20. 一元函数微分学和一元函数积分学的应用

热门文章

  1. eureka设置黑名单
  2. 程序员减脂神仙吃法分享
  3. 看山是山,看山不是山,看山还是山--技术经验需要不断实践、学习、总结
  4. 树莓派Pico W无线WiFi开发板使用方法及MicroPython网络编程实践
  5. python3中os.system(cmd)的返回值
  6. 小白学习ROS(3)创建Publisher和Subscriber节点
  7. GlobeImposter勒索病毒新变种C4H东山再起
  8. uni-app webrtc 实现H5音视频通讯
  9. 2021年全球与中国无纺布桌布行业市场规模及发展前景分析
  10. ubuntu清理空间技巧 包含【系统日志、缓存、无用包、内核、VScode、conda、snap、pip】