zoukankan      html  css  js  c++  java
  • 收徒

    题目来源:https://biancheng.love/contest-ng/index.html#/34/problems

    题目描述

    Nova君想要找个徒弟和他一起玩游戏机,然而,Nova君是个要求很多的人,游戏能力在他之上的或者和他一样强的都不要,要了岂不是很没面子 ╮(╯▽╰)╭ 能力太差的也不要_Orz__ 所以Nova君决定在游戏能力在他之下的人里挑选能力最强的。世界那么大,很可能有一些人能力值一样。Nova君在想,到底有多少人有资格呢?请来帮帮他找机友。

    输入

    多组测试数据(组数不超过10),对于每组数据,输入两行,第一行为两个正整数N和M,分别表示所有候选人的个数以及Nova君的能力值;第二行包含N个正整数,表示N个候选人的能力值(已经按非降序排列好)。N<=1000000

    输出

    对于每组数据,输出一行,输出有资格的人的个数。

    输入样例

    7 9
    2 4 6 8 8 8 9
    

    输出样例

    3
    

    HINT

    请用二分实现

    解题思路:
    根据题目要求,我们需要做的就是找到能力不超过自己的能力最大的人。也就是第二大数有多少个。
    要求使用二分实现。
    二分实现的一些函数lower_bound upper_bound.
    推荐博客:http://www.cnblogs.com/cobbliu/archive/2012/05/21/2512249.html
    现在给出代码:
    #include <bits/stdc++.h>
    #define MAX 10000010
    using namespace std;
    
    int a[MAX];
    
    int main()
    {
        int n,m,k;
        int *f,*p,*l;
        while(~scanf("%d%d", &n,&m))
        {
            for(int i=0;i<n;i++)
                scanf("%d",&a[i]);
            p=lower_bound(a,a+n,m);
            k=*(p-1);
            f=lower_bound(a,a+n,k);
            l=upper_bound(a,a+n,k);
            printf("%d
    ", l-f);
        }
    }
     
  • 相关阅读:
    nohup 运行后台程序
    配置了yum本地源
    rhel 6.7 离线安装docker
    java timer 执行任务
    遇到的sql关键字
    mysql事务和锁
    Mysql命令大全
    mysql keepalived
    mysql主从复制
    mysql从binlog恢复数据
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/5037546.html
Copyright © 2011-2022 走看看