青蛙王国一年一度的游戏又开始了,这个游戏要求青蛙必须跳过河。河的宽度是 L 。河里有n块石头,这n块石头从河的一边笔直的连到另一边。青蛙只能踩着石头过河,如果它们掉到水里,将被淘汰出局。游戏规定青蛙最多跳m次。现在青蛙想要知道如果在这m步内跳到岸的那边,它一步最长需要跳多长。
Input
输入包括多组测试结果。
第一行输入三个数字L(1<= L <= 1000 000 000),n(0<= n <= 500000),m(1<= m <= n+1)。
接下来一行有n个用空格隔开的整数,表示每块石头到跳跃起点的距离,两块石头不可能同时出现在一个地方。
Output
对于每次测试,输出一个整数表示青蛙至少应该有的最大的能力,即为一步最多能跳多长,每步实际跳的长度一定小于等于这个最小的最大能力。
Sample Input
6 1 2
2
25 3 3
11 2 18
Sample Output
4
11

#include<bits/stdc++.h>
using namespace std;
int a[500005];
int L,n,m;
int solve(int x)
{int s=0,step=0;for(int i=1;i<n+1;i++){if(x>=a[i]-a[s]&&x<a[i+1]-a[s])//贪心:能跳这次跳不到下一个,说明是这次跳的最大的{s=i;step++;}}step++;//最后一个石头跳到岸上加一步if(step>m)return 0;elsereturn 1;
}
int main()
{while(scanf("%d%d%d",&L,&n,&m)!=EOF){memset(a,0,sizeof(a));for(int i=1;i<=n;i++){scanf("%d",&a[i]);}a[0]=0;a[n+1]=L;sort(a,a+n+2);int Max=-1;for(int i=1;i<=n+1;i++){if(Max<a[i]-a[i-1]){Max=a[i]-a[i-1];}}int l=Max,r=L;while(r>=l)//二分{int mid=(r+l)>>1;if(solve(mid)){r=mid-1;}elsel=mid+1;}printf("%d\n",l);}
}

哈理工OJ-1584-青蛙过河【贪心+二分】相关推荐

  1. hrbust 1584 青蛙过河(二分)

    青蛙过河 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 68(38 users) Total Accepted: 36(32 user ...

  2. 哈理工OJ 1186 青蛙过河 (DP问题)

    题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1186 青蛙过河 Time ...

  3. hrbust 哈理工oj 1588 神医【贪心】

    神医 Time Limit: 1000 MS Memory Limit: 32768 K Total Submit: 140(33 users) Total Accepted: 43(31 users ...

  4. 哈理工OJ 1192 追逐(贪心算法)

    追逐 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 140(68 users) Total Accepted: 75(64 users ...

  5. 青蛙过河(二分+并查集)

    青蛙过河 来回x次,也就是从起点一共2x个青蛙走一遍到终点 用一个数组记录每次送多少个青蛙由i–>j 具体看acwing解析 #include <bits/stdc++.h> #de ...

  6. nyoj-619 青蛙过河

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=619 题目大意:就是有一条宽为L的河,河上有n个石头,每个石头与河对岸的距离为a[i],然 ...

  7. nyoj 691 青蛙过河

    题目链接: http://acm.nyist.net/JudgeOnline/problem.php?pid=619 /// 这道题好像是青蛙过河,我也没有翻译,因为之前做过一个这样的题,就是一条河有 ...

  8. java青蛙过河打字_趣味算法——青蛙过河(JAVA)

    青蛙过河是一个非常有趣的智力游戏,其大意如下: 一条河之间有若干个石块间隔,有两队青蛙在过河,每队有3只青蛙,这些青蛙只能向前移动,不能向后移动,且一次只能有一只青蛙向前移动.在移动过程中,青蛙可以向 ...

  9. 2021.05.05青蛙过河

    2021.05.05青蛙过河 (题目来源:https://leetcode-cn.com/problems/frog-jump/) 题目描述 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每 ...

  10. Python解题 - NOIP2005 青蛙过河

    本题解经过热心网友的指正,已经更新,问哥为之前的武断向大家道歉.此题解仅供参考,感谢大家的监督与建议. 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很 ...

最新文章

  1. 把计算机网络关闭啦怎么打开,我在笔记本电脑里的“打开或关闭系统图标”中关闭了“网络系统图标”,哪么怎样做才能打开...
  2. 神经网络理论基础及Python实现
  3. 批改网作文提交时分析不出来_小学生作文写作从哪些方面提高呢?
  4. C语言库函数的实战之一
  5. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )
  6. html5怎么改为vue_【面试需要Vue全家桶】一文带你看透Vue前端路由
  7. YII2操作mongodb笔记
  8. [实践系列]Promises/A+规范
  9. github private链接访问_如何将Jenkins链接到私有Github存储库?
  10. npm以及gulp相关操作
  11. php手机注册和微信登录统一,微信第三方登录账户统一的问题
  12. 计算机组成原理第二版知识大纲
  13. Tab控件中滚动条的设置
  14. layui让当前页面刷新_layui点击按钮页面会自动刷新的解决方案
  15. 年会抽奖系统3d效果html,HTML抽奖系统 开源版,希望我们共同学习!
  16. python怎么关闭csv_Python2.7.1:如何打开、编辑和关闭CSV fi
  17. 推荐参加国际会议海报制作(poster)的Latex模板
  18. 如何用chrome浏览器打开swf文件
  19. 邓侃:中国首个全过程智能诊疗系统,全方位披露技术核心和商业模式
  20. 关于Git 的管理凭据操作

热门文章

  1. RGBA 转 RGB
  2. 推荐WebSocket、Https移动端(iOS)抓包工具mitmproxy
  3. 如何让人形机器人“行稳致远”?这篇顶级期刊的论文提出了新方法
  4. Thread 类的基本用法(附详细代码),通俗易懂。
  5. 今日头条火山小视频消重
  6. 数学基础task07 多元微分学
  7. Docker容器日常操作命令
  8. Android4.4以后第三方应用无法删除短信的解决方案
  9. lisp写标高线_属性块形式的标高标注程序! - AutoLISP/Visual LISP 编程技术 - CAD论坛 - 明经CAD社区 - Powered by Discuz!...
  10. 2016年3月4日。