• 二分查找 2015百度之星初赛1 HDOJ 5246 超级赛亚ACMer


    题目传送门

     1 /*
     2     二分找到不大于m的最大的数,记做p,只要a[p] + k <= a[p+1]就继续
     3     注意:特判一下当没有比m小的数的情况:)
     4 */
     5 #include <cstdio>
     6 #include <cstring>
     7 #include <cmath>
     8 #include <algorithm>
     9 using namespace std;
    10 
    11 typedef long long ll;
    12 
    13 const int MAXN = 1e4 + 10;
    14 const int INF = 0x3f3f3f3f;
    15 ll a[MAXN];
    16 
    17 int main(void)        //2015百度之星初赛1 1001 超级赛亚ACMer
    18 {
    19     int n, m, k;
    20     int t, cas = 0;
    21     scanf ("%d", &t);
    22     while (t--)
    23     {
    24         scanf ("%d%d%d", &n, &m, &k);
    25         for (int i=1; i<=n; ++i)    scanf ("%I64d", &a[i]);
    26         sort (a+1, a+1+n);
    27 
    28         int p = lower_bound (a+1, a+1+n, m) - a - 1;
    29 //        printf ("here %d
    ", p);
    30         bool flag = true;
    31         while (p + 1 <= n && a[p] + k >= a[p+1])
    32         {
    33             p++;
    34             if (k > 0)    k--;
    35         }
    36         if (p < n)    flag = false;
    37 //        printf ("here %d
    ", p);
    38 
    39         printf ("Case #%d:
    ", ++cas);
    40         if (m < a[1])    puts ("madan!");
    41         else if (!flag)    puts ("madan!");
    42         else    puts ("why am I so diao?");
    43     }
    44 
    45     return 0;
    46 }
    47 
    48 /*
    49 2
    50 5 11 3
    51 15 13 10 9 8
    52 5 11 3
    53 8 9 10 13 16
    54 */
    编译人生,运行世界!
  • 相关阅读:
    stark
    MySQL与JDBC
    存储过程/视图/触发器
    MyCat部署运行(Windows环境)与使用步骤详解
    常用单词总结
    表单校验---validation检验
    jQuery简介
    javascript简单介绍
    HTML&&CSS
    消息队列Java的简单实现
  • 原文地址:https://www.cnblogs.com/Running-Time/p/4541588.html
Copyright © 2020-2023  润新知