poj3258 River Hopscotch(二分)

原创 2016年06月02日 10:39:43

poj3258

题目

http://poj.org/problem?id=3258

思路

题意就是给一排的石头,头尾不能去掉,去掉m个石头,求最小间距的最大值。
思路就是二分最小距离,判断的时候注意最后一个不能去掉。

代码

#include <iostream>
#include <cstdio>
#include <algorithm>

using namespace std;

int a[50100];
int l,n,m;

int judge(int x)
{
    int k=0;
    int now=0;
    int temp=1;
    while(temp!=n+1)
    {
        if(a[temp]-a[now]<x)
        {
            k++;
            temp++;
        }
        else
        {
            now=temp;
            temp=temp+1;
        }
    }
    if(a[temp]-a[now]<x) k++;
    if(k<=m) return 1;
    else return 0;
}

int main()
{

    scanf("%d %d %d",&l,&n,&m);
    a[0]=0,a[1]=l;
    for(int i=2; i<n+2; i++)
        scanf("%d",&a[i]);
    sort(a,a+n+2);
    int low=0;
    int high=0;
    for(int i=1; i<n+2; i++)
    {
        high=max(high,a[i]-a[i-1]);
    }
    while(low<=high)
    {
        int mid=(low+high)/2;
        if(judge(mid))
        {
            low=mid+1;
        }
        else
        {
            high=mid-1;
        }
    }
    printf("%d\n",high);
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

POJ3258-River Hopscotch-二分+贪心【最小值最大化】

给你L,n,m L是一条路总长度 n是路上n个石头 m是要移走m个石头(第一个和最后一个石头不能移走)   设X为剩下的n-m个石头里,石头之间相邻最近的距离 求这个X的最大值 二分X,对于...
  • viphong
  • viphong
  • 2016年02月27日 11:15
  • 197

【二分法】POJ3258-River Hopscotch

【抱大腿】啊啊啊又是一道恶心的题目!!!这道题是出在二分法里面的,因为这跟前面的一道青蛙过河的题特别像但是不一样,按照青蛙过河那个思路来走根本行不通,正好要按照跟那个思路相反的想法来想才行~ ...
  • silent0001
  • silent0001
  • 2016年07月27日 14:53
  • 249

POJ3258 River Hopscotch 二分

DescriptionEvery year the cows hold an event featuring a peculiar version of hopscotch that involves...
  • xinxiaxindong
  • xinxiaxindong
  • 2017年07月25日 17:02
  • 78

Poj3258 River Hopscotch 二分

River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 13071 ...
  • rabbit_ZAR
  • rabbit_ZAR
  • 2017年04月03日 21:46
  • 101

POJ3258:River Hopscotch(二分)

Description Every year the cows hold an event featuring a peculiar version of hopscotch that invo...
  • libin56842
  • libin56842
  • 2014年08月18日 14:45
  • 2450

POJ3258——River Hopscotch(二分)

River Hopscotch Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 12251 ...
  • say_c_box
  • say_c_box
  • 2016年12月04日 14:46
  • 192

POJ3258 River Hopscotch二分

#include #include #include using namespace std; int a[50002]; int l,n,m; bool pan(int x) { int coun...
  • xuyouqiao2005
  • xuyouqiao2005
  • 2014年07月19日 16:39
  • 296

River Hopscotch(二分POJ3258)

River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9263 Accepted:...
  • huayunhualuo
  • huayunhualuo
  • 2015年08月24日 08:52
  • 151

POJ3258 River Hopscotch(二分)

River Hopscotch 二分(判定函数有点难想~)
  • Todd_Dijkstra
  • Todd_Dijkstra
  • 2016年06月02日 22:34
  • 132

POJ3258 River Hopscotch(二分+贪心)

River Hopscotch
  • riba2534
  • riba2534
  • 2017年07月08日 10:53
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:poj3258 River Hopscotch(二分)
举报原因:
原因补充:

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