BNUOJ 8108

原创 2016年08月29日 15:39:39

The Frog's Games

1000ms
65768KB
This problem will be judged on HDU. Original ID: 4004
64-bit integer IO format: %I64d      Java class name: Main
Font Size:  
The annual Games in frogs' kingdom started again. The most famous game is the Ironfrog Triathlon. One test in the Ironfrog Triathlon is jumping. This project requires the frog athletes to jump over the river. The width of the river is L (1<= L <= 1000000000). There are n (0<= n <= 500000) stones lined up in a straight line from one side to the other side of the river. The frogs can only jump through the river, but they can land on the stones. If they fall into the river, they 
are out. The frogs was asked to jump at most m (1<= m <= n+1) times. Now the frogs want to know if they want to jump across the river, at least what ability should they have. (That is the frog's longest jump distance).

Input

The input contains several cases. The first line of each case contains three positive integer L, n, and m. 
Then n lines follow. Each stands for the distance from the starting banks to the nth stone, two stone appear in one place is impossible.

Output

For each case, output a integer standing for the frog's ability at least they should have.

Sample Input

6 1 2
2
25 3 3
11 
2
18

Sample Output

4
11

Source

The 36th ACM/ICPC Asia Regional Dalian Site —— Online Contest


#include <iostream>
#include <climits>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N= 500011;
int a[N];
int judge(int k);
int l, n, m;


int main()
{
    while(scanf("%d%d%d",&l,&n, &m)!=EOF)
    {
        a[0]=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        sort(a+1,a+n+1);
        int Max=-1;
        for(int i=1;i<=n;i++)
        {
            Max=max(Max,a[i]-a[i-1]);
        }
        a[n+1]=l;
        a[n+2]=INT_MAX;
        Max=max(Max,a[n+1]-a[n]);
        int li=Max-1,ri=l,mid;
        while(mid=(li+ri)/2,li<ri)
        {
            if(judge(mid))
            {
                ri=mid;
            }
            else
            {
                li=mid+1;
            }
        }
        printf("%d\n",ri);
    }
    return 0;
}


int judge(int k)
{
    int now=0;
    for(int i=1;i<=m;i++)
    {
        int j;
        for(j=now;a[j+1]-a[now]<=k;j++);
        now=j;
        if(now==n+1)
        {
            return 1;
        }
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

BNUOJ 52296 Nearest Neighbor Search(十一弱校联盟 暴力分情况)

思路: 就是在立方体区域内找一点,使平方距离和最小。 有点傻,直接暴力分情况讨论了27种情况。。。 代码: #include #include #include #include using na...
  • hhu1506010220
  • hhu1506010220
  • 2016年10月02日 20:43
  • 285

十四届北师大校赛题解

A.Check In 题目: https://www.bnuoj.com/v3/problem_show.php?pid=51635 题意: 找到所有是bnu的账号数量 思路: 所有是bnu的账号...
  • kopyh
  • kopyh
  • 2016年06月10日 12:33
  • 710

BNUOJ44586(栈模拟)

题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=44586 解题思路: 用栈来模拟,考虑时候要注意字母为奇数时才消除。如果当前栈顶为奇数...
  • u013447865
  • u013447865
  • 2014年12月28日 12:35
  • 420

BNUOJ 34963 相似数列

Time Limit: 3000ms Case Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO format: ...
  • u014705673
  • u014705673
  • 2014年04月20日 01:37
  • 923

表达式求值 nyistoj +BNUoj

BNUOJ Resistors#include #include #include #include #include using namespace std; struct date { ...
  • hfengzhi
  • hfengzhi
  • 2015年04月15日 18:46
  • 285

bnuoj 1028 软件安装

软件安装        yjy和yc都很喜欢linux ,但是一开始linux相当难装,等他们装好linux后,又会发现好多软件都没有装,所以每次重装电脑,yjy 都会很郁闷.直到有一天yc 告诉y...
  • u014360070
  • u014360070
  • 2016年08月21日 20:57
  • 118

BNUOJ 44586 顽皮的字母

大家都知道有26个英文字母,abcdef…。由这些字母组成了一个字符串,但是,由于这些字母日久生情,有一些字母挨在一起的时候就会一起跑走玩耍。我们对26个字母编号1~26,就是说1对应a,…,26对应...
  • qiaoermeng
  • qiaoermeng
  • 2016年11月18日 17:20
  • 179

BNUOJ 1043 旋转方块

BNUOJ 1043 旋转方块 有一种电脑赌博的游戏,电脑先生成两个8*8的图案块(只含有'.','*','#'),如下图 方块1: 方块2: ........ ..*..... .....
  • M173475237
  • M173475237
  • 2014年04月09日 17:12
  • 447

棋盘问题 BNUOJ 1440

棋盘问题 Time Limit: 1000ms Memory Limit: 10000KB问题描述: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋...
  • lvxin1204
  • lvxin1204
  • 2016年03月31日 16:50
  • 2027

BNUOJ新生赛题解

第一次完整的把小比赛复现了一遍,有点小激动,虽说题不难,但是其中暴露出来的问题特别多。希望有大神能教教我那个似乎是矩阵快速幂的题怎么实现。大家一起加油。希望大家支持我!...
  • kevin66654
  • kevin66654
  • 2014年12月31日 00:51
  • 472
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:BNUOJ 8108
举报原因:
原因补充:

(最多只允许输入30个字)