每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一块岩石跳到另一块岩石。这项激动人心的活动在一条长长的笔直河道中进行,在起点和距离起点 L 远的终点各有一块岩石 (1 ≤ L ≤ 10^9)。在起点和终点之间,有 N 块岩石 (0 ≤ N ≤ 50000),每块岩石与起点的距离分别为 Di (0 < Di < L)。

在比赛过程中,奶牛轮流从起点出发,尝试到达终点,每一步只能从一块岩石跳到另一块岩石。当然,实力不济的奶牛无法抵达终点,在河中间就退出比赛了。

农夫约翰为他的奶牛们感到自豪并且年年都观看了这项比赛。但随着时间的推移,看着其他农夫的胆小奶牛们在相距很近的岩石之间缓慢前行,他感到非常厌烦。他计划移走一些岩石,使得从起点到终点的过程中,最短的跳跃距离最长。他可以移走除起点和终点外的至多 M 块岩石 (0 ≤ M ≤ N)。

请帮助农夫约翰确定:移走这些岩石后,最短跳跃距离的最大值是多少?

输入
第 1 行包含以单个空格分隔的三个整数 L, N, M。
第 2 到 N + 1 行,每行一个整数,表示每个岩石与起点的距离。不会有两个岩石出现在同一个位置。
输出
输出一个整数,即最短跳跃距离的最大值。
示例输入
25 5 2
2
14
11
21
17
示例输出
4
提示
在移除位于 2 和 14 的两块岩石之后,最短跳跃距离达到了最大值 4 (从 17 到 21,或从 21 到 25)。

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{int L,n,m;while(cin>>L>>n>>m){int a[50005];a[0]=0;for(int i=1;i<=n;++i)scanf("%d",&a[i]);a[n+1]=L;sort(a,a+n+2);int low=0,high=L,mid;while(low<=high){mid=low+(high-low)/2;/*  int ans=0,tag=a[0];int sum=0;for(int i=1;i<=n+1;){if(mid>=(sum+=a[i]-a[i-1]))//在网上看的这个思想也挺好{i++;ans++;}else{i++;sum=0;} //tag=a[i];}*/int ans=0,tag=a[0];for(int i=1;i<=n+1;++i){if(mid>=a[i]-tag){//tag=a[i-1];自己写的这个思想,开始是个bug,原因是这行代码不应该加ans++;}elsetag=a[i];}//cout<<mid<<endl;if(ans<=m){//cout<<mid<<endl;low=mid+1;}elsehigh=mid-1;}cout<<low<<endl;}return 0;
}

poj3258 River Hopscotch (二分搜索,考虑最大值最小问题)相关推荐

  1. POJ3258 River Hopscotch(二分)

    题目链接:https://vjudge.net/problem/POJ-3258 题意: 有一条河长为L,河中间有n块石头,算上开始和结尾一共n+2个,现在问去掉m块石头,问最短距离中的最大值是多少? ...

  2. poj-3258 River Hopscotch (二分)

    题意:奶牛过河游戏,河上有N块石头,河的总宽度为L,一位农夫感觉每个石头之间的间距太小了,所以他想通过移除M块石头来使最小的间距最大化.求最大化后的最小距离(姑且是这个题意吧,英语菜) 思路:通过二分 ...

  3. River Hopscotch

    题目链接:http://poj.org/problem?id=3258 River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total ...

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

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

  5. bzoj 1650: [Usaco2006 Dec]River Hopscotch 跳石子(二分)

    1650: [Usaco2006 Dec]River Hopscotch 跳石子 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 721  Solved: ...

  6. 图论500题 ---- 并查集求路径上最大值最小不超过K的点对数 HDU Portal

    题目链接 题目大意: 就给你一个图,qqq次询问,问你这个图上有多少对点之间的所以路径上的最大值的最小值不超过kkk? 解题思路: 首先我们知道这本质上就是求两个点联通的路径上的最大值最小是多少? 那 ...

  7. Monthly Expense POJ - 3273(二分最大值最小化)

    Farmer John is an astounding accounting wizard and has realized he might run out of money to run the ...

  8. Dr. Evil Underscores(异或最大值最小)

    Today, as a friendship gift, Bakry gave Badawy nn integers a1,a2,-,ana1,a2,-,an and challenged him t ...

  9. leetcode 二分法 最大值最小化/最小值最大化

    一.(leetcode 410)分割数组的最大值 题目描述: 给定一个非负整数数组和一个整数 m,你需要将这个数组分成 m 个非空的连续子数组.设计一个算法使得这 m 个子数组各自和的最大值最小. 代 ...

最新文章

  1. 演进式数据库开发技术的障碍
  2. 理解 Delphi 的类(十) - 深入方法[9] - 调用时的括号
  3. etcd 集群故障(数据变成只读)
  4. 编程大讲坛、坛坛是佳酿--编程大讲坛:C#核心开发技术从入门到精通
  5. 【Pytorch神经网络实战案例】06 逻辑回归拟合二维数据
  6. bytevalue_Java Short类byteValue()方法及示例
  7. linux 用dg分区,[bug报告] 兼容性问题,mbr硬盘使用分区扩容后linux系统不认分区...
  8. Java中的Map List Set等集合类
  9. 26、Windows API Shell编程(2)
  10. 河南自考本科英语可用计算机代替,河南自考选考2至3门专业课可代替英语课程...
  11. PPT中如何插入页码和母版修改
  12. 多极神经元红蓝铅笔手绘,多极神经元手绘图作业
  13. 数据挖掘➡谈谈为什么学?
  14. Vistor(访问者模式)行为型
  15. 邬贺铨:商用一周年,5G成为中国数字经济的“新引擎”
  16. MPU6050介绍及姿态解算
  17. 85寸电视机长宽是多少
  18. (记录)绝对值的实现
  19. Unity | unityC++内存共享及中文乱码解决方式
  20. NOI2016 day1 总(xia)结(che)

热门文章

  1. SQL Server中事务日志自动增长对性能的影响
  2. Android MIPI转LVDS显示屏调试之---SN65DSI84初始化参数的确定(3)
  3. Android关闭USB的ADB调试和文件传输功能(禁用USB)
  4. WINCE6.0在应用程序中调用控制面板的应用
  5. urllib post请求 cookie
  6. AlamofireJsonToObjects+EVReflection:一步解决JSON解析
  7. 10分钟部署一个数据中心
  8. 指向结构体的指针别名
  9. 广播系统android安全:flag FLAG_RECEIVER_REGISTERED_ONLY的意义
  10. DNS 与 活动目录 的关系