zoukankan      html  css  js  c++  java
  • 洛谷 P1316丢瓶盖

    题目描述

    陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢?

    输入输出格式

    输入格式:

    第一行,两个整数,A,B。(B<=A<=100000)

    第二行,A个整数,分别为这A个瓶盖坐标。

    输出格式:

    仅一个整数,为所求答案。

     1 #include<bits/stdc++.h>//二分答案
     2 using namespace std;
     3 int n,c,a[100010],l=1,r,mid;
     4 bool check(int x){//判断
     5     int tot=1;
     6     int num=1;
     7     for(int i=2;i<=n;i++)
     8         if(a[i]-a[num]>=x){
     9             tot++;
    10             num=i;
    11         }
    12     if(tot>=c)return true;
    13     return false;
    14 }
    15 void search(){
    16     r=a[n]-a[1];
    17     while(l<=r){
    18         mid=(l+r)/2;
    19         if(check(mid))l=mid+1;
    20         else r=mid-1;
    21     }
    22 }
    23 int main()
    24 {
    25     cin>>n>>c;
    26     for(int i=1;i<=n;i++)
    27        cin>>a[i];
    28     sort(a+1,a+n+1);
    29     search();
    30     cout<<r;
    31     return 0;
    32 }

  • 相关阅读:
    Cocos2d-html5 笔记2: director
    Cocos2d html5 笔记 1: overview
    Device Pixel Ratio & Media Queries
    Viewport
    Viewport解决分辨率适配问题
    Ajax缓存解决办法
    capitalize()
    chr() 、ord()
    oct()
    eval()
  • 原文地址:https://www.cnblogs.com/1129-tangqiyuan/p/9495097.html
Copyright © 2011-2022 走看看