BNUOJ 8108

556人阅读 评论(0) 收藏 举报
分类:

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:  
Type:  
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;
}

查看评论

KENWOOD TK8108维修手册

  • 2015年03月04日 09:41
  • 4.12MB
  • 下载

第十五届北京师范大学程序设计竞赛 [(6+1)/11,待补]

23号下午。和队友用一个账号一起做这套题,开了挂,用了两台电脑,由于我们做的时候还不能添加到BNUVJ,队内交流还少,因为中文题面嘛,基本相当于两个人分别打个人了。。。但是鄙队实在是菜的抠脚啊,最后仅...
  • qq_33184171
  • qq_33184171
  • 2017-04-24 01:09:43
  • 580

NI出品的PXI说明

  • 2012年06月11日 09:54
  • 238KB
  • 下载

BNU 1440 - 棋盘问题

题目地址: http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=1440   类似 N皇后 ,直接 DFS枚举即可。   #include #i...
  • diannaok
  • diannaok
  • 2012-08-17 21:25:34
  • 414

BNUOJ 6242

一道简单的模拟题!
  • zyjhtutu
  • zyjhtutu
  • 2014-08-06 16:48:21
  • 275

Escape BNUOJ 49278

Name: Escape P_ID: BNUOJ 49278 题目描述:小明进入地下迷宫寻找宝藏,找到宝藏后却发生地震,迷宫各处产生岩浆,小明急忙向出口处逃跑。如果丢下宝藏,小明就能迅速离开迷宫,...
  • lvxin1204
  • lvxin1204
  • 2016-04-05 16:47:58
  • 194

bnuoj-4357 传送阵(第九届北京师范大学程序设计竞赛决赛)

 bnuoj-4357 传送阵(第九届北京师范大学程序设计竞赛决赛)题目地址https://www.bnuoj.com/v3/problem_show.php?pid=4357 小Y是星际宇航员,经过...
  • ai_64
  • ai_64
  • 2016-04-22 21:08:28
  • 221

建伍对讲机TK-8108

  • 2014年07月05日 22:20
  • 3.06MB
  • 下载

1440分手日记

昨天是分手最关键的一天,你向我提出了很过分的要求,我很生气。本来谈好随机方案,你却想得寸进尺,想要“兼收”,这对于我来说是多么的痛苦啊!?我一直坚守我的决定并没有退怯,即使你要离开这样的威胁。我渐渐的...
  • annicybc
  • annicybc
  • 2007-03-12 09:40:00
  • 645

bnuoj 1028 软件安装

软件安装        yjy和yc都很喜欢linux ,但是一开始linux相当难装,等他们装好linux后,又会发现好多软件都没有装,所以每次重装电脑,yjy 都会很郁闷.直到有一天yc 告诉y...
  • u014360070
  • u014360070
  • 2016-08-21 20:57:38
  • 142
    文章
    个人资料
    持之以恒
    等级:
    访问量: 11万+
    积分: 7650
    排名: 3515
    最新评论