hdu 4004 (二分加贪心) 青蛙过河
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4004
题目意思是青蛙要过河,现在给你河的宽度,河中石头的个数(青蛙要从石头上跳过河,这些石头都是在垂直于河岸的一条直线上)
还有青蛙能够跳跃的 最多 的次数,还有每个石头离河岸的距离,问的是青蛙一步最少要跳多少米可以过河》
这是一道二分加贪心的题,从0到的河宽度开始二分,二分出一个数然后判断在这样的最小步数(一步跳多少距离)下能否过河
判断的时候要贪心
主要难在思维上,关键是要想到二分上去,能想到二分code就很好写了(实验二分的思维还是很强大的)
#include<cstdio>
#include<algorithm>
using namespace std;
//typedef long long ll;
int l,n,m;
int num[];
int check(int x)
{
if (x*m<l) return ; //能过河的步数必然是大于平均值的
int i=,j=,step=;
while (i<=n+)
{
step++;
if (num[i]-num[j]>x) //不能满足相邻的两个石头之间的跳跃显然是不行的
return ;
while (num[i]-num[j]<=x&&i<=n+)//尽量使这一步能跳过更多的石头,贪心基本上都是这个格式
i++;
j=i-;
}
if (step>m) return ; //判断是否超过规定的次数
return ;
}
int main()
{
int left,right,i,mid;
while (~scanf("%d %d %d",&l,&n,&m))
{
for (i=;i<=n;i++)
scanf("%d",&num[i]);
sort(num+,num++n);
num[]=;num[n+]=l;
left=;right=l;
while (left<=right) //二分出最小步数
{
mid=(left+right)/;
if (check(mid))
left=mid+;
else
right=mid-;
}
printf("%d\n",left);
}
return ;
}
hdu 4004 (二分加贪心) 青蛙过河的更多相关文章
- hdu 4004 二分 2011大连赛区网络赛D
题意:一个长为L的河,中间有n个石子,小青蛙需要跳少于m次过河,判断小青蛙每次跳跃最大距离的最小值 最大值最小,用二分 Sample Input 6 1 2 2 25 3 3 11 2 18 Samp ...
- codeforces732D 二分加贪心。。
啊,不好意思..这个题窝也不会,看了网上的题解做的.. 先说一下题意.. 你要考试了..然后你有n天的时间准备以及进行考试 并且,每一天..要么你花一天时间去考一门(每天只能考一门),要么花一天时间休 ...
- HDU 4004 二分
The Frog's Games Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others) ...
- 洛谷 P1824 进击的奶牛【二分答案/类似青蛙过河】
题目描述 Farmer John建造了一个有N(2<=N<=100,000)个隔间的牛棚,这些隔间分布在一条直线上,坐标是x1,...,xN (0<=xi<=1,000,000 ...
- hdu 1598 (并查集加贪心) 速度与激情
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1598 一道带有贪心思想的并查集 所以说像二分,贪心这类基础的要掌握的很扎实才行. 用结构体数组储存公 ...
- 【JavaScript】Leetcode每日一题-青蛙过河
[JavaScript]Leetcode每日一题-青蛙过河 [题目描述] 一只青蛙想要过河. 假定河流被等分为若干个单元格,并且在每一个单元格内都有可能放有一块石子(也有可能没有). 青蛙可以跳上石子 ...
- [LeetCode] Frog Jump 青蛙过河
A frog is crossing a river. The river is divided into x units and at each unit there may or may not ...
- NOIP 2005 青蛙过河
做题记录:2016-08-10 21:58:09 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都 ...
- ooj 1066 青蛙过河DP
http://121.249.217.157/JudgeOnline/problem.php?id=1066 1066: 青蛙过河 时间限制: 1 Sec 内存限制: 64 MB提交: 58 解决 ...
随机推荐
- python3编译安装
linux下配置安装python3一.首先,官网下载python3的所需版本.wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz ...
- Python列表推导式
- linux下网络配置
配置相关 http://bbs.acehat.com/thread-813-1-1.html
- Using promises
[Using promises] 过去,异步方法这样写: function successCallback(result) { console.log("It succeeded with ...
- linux中weblogic相关命令操作
在weblogic的目录下找到bin目录,其中有startWeblogic.sh.startManagerWeblogic.sh等 首先需要启动startWeblogic.sh,这个是管理服务,也就是 ...
- hello world讲解1
1. HelloWorld程序解析---------------------------------------------------------------------------------- ...
- Mybatis学习链接
mybatis实战教程(mybatis in action),mybatis入门到精通 http://blog.csdn.net/techbirds_bao/article/details/923 ...
- 取消掉maven
- Lattice Constants and Crystal Structures of some Semiconductors
Lattice Constants and Crystal Structures of some Semiconductors and Other Materials Element or Compo ...
- pta l2-11(玩转二叉树)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805065406070784 题意:给定二叉树的结点个数n,其前 ...