POJ:3258-River Hopscotch
River Hopscotch
Time Limit: 2000MS      Memory Limit: 65536K 
Total Submissions: 17740        Accepted: 7414
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.
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
Sample Output
4
Hint
Before removing any rocks, the shortest jump was a jump of 2 from 0 (the start) to 2. After removing the rocks at 2 and 14, the shortest required jump is a jump of 4 (from 17 to 21 or from 21 to 25).
解题心得:
- 有n块石头排成一列,每个石头距离原点有一个距离,现在要移走m块石头,问这些牛要跳在(n-m) 块石头上,怎么移走石头让牛每次跳的最短距离最大。输入最短的最大距离。
- 看到这个最短距离最大其实也就想到二分了。首先要明白(n-m)块石头,牛要跳n-m+2次(起点和终点没有石头但是也要跳)。然后二分检查。
#include <algorithm>
#include <stdio.h>
#include <cstring>
using namespace std;
const int maxn = 5e5+100;
int pos[maxn],n,m,l,tot;
void init() {
    pos[0] = 0;
    for(int i=1;i<=n;i++)
        scanf("%d",&pos[i]);
    pos[n+1] = l;
    n += 2;
    sort(pos,pos+n);
    tot = n-m;
}
bool checke(int len){
    int cnt = 1,now = pos[0];
    for(int i=1;i<n;i++) {
        if(pos[i] - now >= len) {
            cnt++;
            now = pos[i];
        }
    }
    if(cnt >= tot)
        return true;
    return false;
}
int binary_search() {
    int l = 0,r = 1e9+100;
    while(r - l > 1) {
        int mid = (l + r) / 2;
        if(checke(mid))
            l = mid;
        else
            r = mid;
    }
    return l;
}
int main() {
    while(scanf("%d%d%d",&l,&n,&m) != EOF) {
        init();
        int ans = binary_search();
        printf("%d\n",ans);
    }
    return 0;
}POJ:3258-River Hopscotch的更多相关文章
- 二分搜索 POJ 3258 River Hopscotch
		题目传送门 /* 二分:搜索距离,判断时距离小于d的石头拿掉 */ #include <cstdio> #include <algorithm> #include <cs ... 
- [ACM] POJ 3258 River Hopscotch (二分,最大化最小值)
		River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6697 Accepted: 2893 D ... 
- POJ 3258 River Hopscotch
		River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 11031 Accepted: 4737 ... 
- POJ 3258 River Hopscotch (binarysearch)
		River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 5193 Accepted: 2260 Descr ... 
- POJ 3258 River Hopscotch(二分答案)
		River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 21939 Accepted: 9081 Desc ... 
- poj 3258 River Hopscotch(二分+贪心)
		题目:http://poj.org/problem?id=3258 题意: 一条河长度为 L,河的起点(Start)和终点(End)分别有2块石头,S到E的距离就是L. 河中有n块石头,每块石头到S都 ... 
- POJ 3258 River Hopscotch 二分枚举
		题目:http://poj.org/problem?id=3258 又A一道,睡觉去了.. #include <stdio.h> #include <algorithm> ]; ... 
- POJ 3258 River Hopscotch(二分法搜索)
		Description Every year the cows hold an event featuring a peculiar version of hopscotch that involve ... 
- poj 3258 River Hopscotch 题解
		[题意] 牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离, 现在去掉M块石头,要求去掉M块石头后,剩下的石头之间以及石头与河岸的最小距离的最大值 ... 
- POJ 3258 River Hopscotch  (二分法)
		Description Every year the cows hold an event featuring a peculiar version of hopscotch that involve ... 
随机推荐
- jQuery设置全选和全反选
			HTML 代码: <input type="checkbox" id="allChecked" onclick="setAllChecked(t ... 
- 在CentOS上配置MySQL服务
			#!/bin/sh # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB # Thi ... 
- TP5.0搭建restful API 应用
			1.配置环境变量,如果没配置会显示如下错误. 配置方法 1)右键此电脑-> 属性-> 高级系统设置->环境变量->Path 2)在Path后加上php目录的名称 如:E:\PH ... 
- CSS选择器备忘录
			CSS选择器备忘录 基本选择器 Selector Meaning Example 通用选择器 匹配任何元素 * 标签选择器 CSS1中称之为元素选择器,匹配为指定标签的所有元素 div 伪元素选择器 ... 
- FastReport Site授权联合推广计划 彻底保障商业化开发,还送iPhone 5s
			上月慧都与报表控件开发商Fastreport联合推出的优惠活动,获得中国开发者的巨大反响.本月慧都再次发力,与Fast Reports, Inc.联合推出FastReport Site授权推广计划.活 ... 
- Azure进阶攻略 | 你的程序也能察言观色?这个真的可以有!
			前段时间有个网站曾经火爆微博和朋友圈:颜龄机器人.只要随便上传一张包含人面孔的照片,这个网站就可以分析图片,并判断照片中人物的年龄.化妆.美颜 P 图.帽子墨镜之类的配饰,几乎都没法影响这个网站的检测 ... 
- ansible使用8-Best Practices
			Content Organization production # inventory file for production servers stage # inventory file for s ... 
- 如何C#操作SQLite数据库
			或许有人之前在java开发中使用过SQLite,对它有些印象.在用Winform或Wpf开发小应用程序时,发现用SQLite数据库也是不错的.就像一个会员管理软件,开发完毕后,可以省去想sqlserv ... 
- 笨办法学Python(零)
			py走起!!! 习题0:准备工作 Windows平台 1. 用浏览器打开 http://learnpythonthehardway.org/exercise0.html 下载并安装 gedit 文本编 ... 
- 【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox
			今天开始一个新的系列,主要是翻译并摘录QtGui中基础空间的常用方法,并做一些简单的实验程序: 我觉得这是一个炒冷饭的行为,但有时候冷饭不能不炒,不热不好吃,而且也很容易发霉. 其实到现在这种状态,对 ... 
