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

    P1316 丢瓶盖

    二分答案

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int n,m,pg[100001];
     4 
     5 char ch;
     6 inline void read(int &now)
     7 {
     8     int f=1; ch=getchar(); now=0;
     9     while(ch>'9'||ch<'0') {if(ch=='-') f*=-1; ch=getchar();}
    10     while(ch>='0'&&ch<='9') now=now*10+ch-'0',ch=getchar();
    11     now*=f;
    12 }
    13 
    14 bool check(int now)
    15 {
    16     int pre=1,tot=1;
    17     for(int i=2;i<=n;i++)
    18         if(pg[i]-pg[pre]>=now) 
    19         {
    20             tot++;
    21             pre=i;
    22         }
    23     if(tot<m) return false;
    24     return true;
    25 }
    26 
    27 int main()
    28 {
    29     read(n); read(m);
    30     for(int i=1;i<=n;i++) read(pg[i]);
    31     sort(pg+1,pg+n+1);
    32     int l=1,r=pg[n]-pg[1],mid;
    33     while(r>=l)
    34     {
    35         mid=(l+r)/2;
    36         if(check(mid)) l=mid+1;
    37         else r=mid-1;
    38     }
    39     cout<<l-1;
    40     return 0;
    41 }
    233
  • 相关阅读:
    1219 总结
    1206 冲刺三
    1130 冲刺2
    1128 主页面
    1123 冲刺3
    1121 冲刺2
    1118 冲刺1
    1117 新冲刺
    0622 软件工程总结
    0617 实验四 主存空间的分配和回收
  • 原文地址:https://www.cnblogs.com/chen74123/p/7481539.html
Copyright © 2011-2022 走看看