bzoj1650 [Usaco2006 Dec]River Hopscotch 跳石子

时间:2022-03-16 04:42:42

Description

Every year the cows hold an event featuring a peculiar version of hopscotch that involves carefully jumping from rock to rock in a river. The excitement takes place on a
long, straight river with a rock at the start and another rock at the end, L units away from the start (1 <= L <= 1,000,000,000). Along the river between the starting and ending rocks, N (0 <= N <= 50,000) more rocks appear, each at an integral distance Di
from the start (0 < Di < L). To play the game, each cow in turn starts at the starting rock and tries to reach the finish at the ending rock, jumping only from rock to rock. Of course, less agile cows never make it to the final rock, ending up instead in the
river. Farmer John is proud of his cows and watches this event each year. But as time goes by, he tires of watching the timid cows of the other farmers limp across the short distances between rocks placed too closely together. He plans to remove several rocks
in order to increase the shortest distance a cow will have to jump to reach the end. He knows he cannot remove the starting and ending rocks, but he calculates that he has enough resources to remove up to M rocks (0 <= M <= N). FJ wants to know exactly how
much he can increase the shortest distance *before* he starts removing the rocks. Help Farmer John determine the greatest possible shortest distance a cow has to jump after removing the optimal set of M rocks.

数轴上有n个石子,第i个石头的坐标为Di,现在要从0跳到L,每次条都从一个石子跳到相邻的下一个石子。现在FJ允许你移走M个石子,问移走这M个石子后,相邻两个石子距离的最小值的最大值是多少。

Input

* Line 1: Three space-separated integers: L, N, and M * Lines 2..N+1: Each line contains a single integer indicating how far some rock is away from the starting rock. No
two rocks share the same position.

Output

* Line 1: A single integer that is the maximum of the shortest distance a cow has to jump after removing M rocks

Sample Input

25 5 2

2

14

11

21

17



5 rocks at distances 2, 11, 14, 17, and 21. Starting rock at position

0, finishing rock at position 25.

Sample Output

4

HINT

移除之前,最短距离在位置2的石头和起点之间;移除位置2和位置14两个石头后,最短距离变成17和21或21和25之间的4.

题意是有n+2个点(没错就是n+2,因为还有0和L),可以删掉m个点,求使删掉之后相邻两点的距离最小值最大

最小值最大……看到它就想到二分

#include<cstdio>
#include<algorithm>
using namespace std;
int a[50010];
int L,n,m,l,r,ans;
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
inline bool jud(int x)
{
int now=0,kill=0,last=0;
while (++now<=n)
{
if (a[now]-a[last]<x)
{
kill++;
if (kill>m)return 0;
continue;
}else last=now;
}
return 1;
}
int main()
{
L=read();n=read();m=read();
for (int i=1;i<=n;i++)a[i]=read();
sort(a+1,a+n+1);
a[0]=0;a[++n]=L;
l=1;r=L;
while (l<=r)
{
int mid=(l+r)>>1;
if (jud(mid)){ans=mid;l=mid+1;}
else r=mid-1;
}
printf("%d",ans);
}

bzoj1650 [Usaco2006 Dec]River Hopscotch 跳石子的更多相关文章

  1. bzoj 1650&colon; &lbrack;Usaco2006 Dec&rsqb;River Hopscotch 跳石子

    1650: [Usaco2006 Dec]River Hopscotch 跳石子 Time Limit: 5 Sec  Memory Limit: 64 MB Description Every ye ...

  2. 【BZOJ】1650&colon; &lbrack;Usaco2006 Dec&rsqb;River Hopscotch 跳石子(二分&plus;贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1650 看到数据和最小最大时一眼就是二分... 但是仔细想想好像判断时不能贪心? 然后看题解还真是贪心 ...

  3. BZOJ 1650 &lbrack;Usaco2006 Dec&rsqb;River Hopscotch 跳石子:二分

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1650 题意: 数轴上有n个石子,第i个石头的坐标为Di,现在要从0跳到L,每次条都从一个石 ...

  4. bzoj 1650&colon; &lbrack;Usaco2006 Dec&rsqb;River Hopscotch 跳石子【贪心&plus;二分】

    脑子一抽写了个堆,发现不对才想起来最值用二分 然后判断的时候贪心的把不合mid的区间打通,看打通次数是否小于等于m即可 #include<iostream> #include<cst ...

  5. bzoj1650 &sol; P2855 &lbrack;USACO06DEC&rsqb;河跳房子River Hopscotch &sol; P2678 &lpar;noip2015&rpar;跳石头

    P2855 [USACO06DEC]河跳房子River Hopscotch 二分+贪心 每次二分最小长度,蓝后检查需要去掉的石子数是否超过限制. #include<iostream> #i ...

  6. POJ 3258 River Hopscotch

    River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 11031   Accepted: 4737 ...

  7. POJ3285 River Hopscotch&lpar;最大化最小值之二分查找&rpar;

    POJ3285 River Hopscotch 此题是大白P142页(即POJ2456)的一个变形题,典型的最大化最小值问题. C(x)表示要求的最小距离为X时,此时需要删除的石子.二分枚举X,直到找 ...

  8. River Hopscotch(二分最大化最小值)

    River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9923   Accepted: 4252 D ...

  9. 1648&colon; &lbrack;Usaco2006 Dec&rsqb;Cow Picnic 奶牛野餐

    1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 432  Solved: 270[ ...

随机推荐

  1. 『&period;NET Core CLI工具文档』(七)dotnet-new

    说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正. 原文:dotnet-new 翻译:dotnet-new 名称 dotnet-new -- 创建一个新的 .NET Core 项 ...

  2. 有k个list列表, 各个list列表的元素是有序的,将这k个列表元素进行排序&lpar; 基于堆排序的K路归并排序&rpar;

    解题思路: 排序方法:多路归并排序 每次将n个list的头元素取出来,进行排序(堆排序),最小元素从堆中取出后,将其所在list的下一个元素 放入堆中,调整堆序列. 函数实现原型: void list ...

  3. iphone 6 设置自定义铃声(未越狱)

    环境: ipone 6 iTunes 12.4.0.119 IOS 9.3.2 先把需要设置的铃声下载到电脑上,然后打开iTunes下的文件->将文件添加到资料库,如图: 2.在音乐列表里右击所 ...

  4. C程序的构成及动态内存分配

    对一个程序,通常的理解就是,源码编译成机器代码,然后通过机器解释运行.不过是怎样编译成机器代码,和怎样运行的,无疑是个值得探讨的问题.怎样编译成机器代码,过程就是源码的编译.链接,编译器做了这些事.而 ...

  5. C&num;模拟POST提交表单(二)--HttpWebRequest以及HttpWebResponse

    上次介绍了用WebClient的方式提交POST请求,这次,我继续来介绍用其它一种方式 HttpWebRequest以及HttpWebResponse 自认为与上次介绍的WebClient最大的不同之 ...

  6. C语言之统计输入字符数量

    这个程序市委了统计所输入的数字或者英文字母的数字的数量,当然稍加改动便可以统计特殊字符的个数,在此不再冗叙. 代码如下: #include <iostream> using namespa ...

  7. &lbrack;20180606&rsqb;如何dump数据库里面的汉字&period;txt

    [20180606]如何dump数据库里面的汉字.txt --//链接http://www.itpub.net/thread-2102613-1-2.html的问题. 比如:col 41: [42]e ...

  8. 调用weka模拟实现 &OpenCurlyDoubleQuote;主动学习&OpenCurlyDoubleQuote; 算法

    主动学习: 主动学习的过程:需要分类器与标记专家进行交互.一个典型的过程: (1)基于少量已标记样本构建模型 (2)从未标记样本中选出信息量最大的样本,交给专家进行标记 (3)将这些样本与之前样本进行 ...

  9. 常问面试题:C&plus;&plus;中sizeof的陷阱及应答

    C++中sizeof是经常被问到的一个概念,比如,下面的几个关于sizeof的面试题反复出现在各大IT公司的技术面试当中,我们有必要完全理解并掌握.注:在曾经面试大公司时,我的确被问到过这样的问题. ...

  10. maven说明

    1.maven 仓库地址 http://mvnrepository.com/ 2.maven jar包搜索地址 http://search.maven.org/ 3. 点开上面的 版本链接,就可以看到 ...