• tyvj1463 智商问题


    背景

    各种数据结构帝~
    各种小姊妹帝~
    各种一遍AC帝~ 来吧!

    描述

    某个同学又有很多小姊妹了
    他喜欢聪明的小姊妹 所以经常用神奇的函数来估算小姊妹的智商
    他得出了自己所有小姊妹的智商
    小姊妹的智商都是非负整数
    但是这个同学看到别的同学的小姊妹
    也喜欢用神奇的函数估算一下
    然后看看这个小姊妹在自己的小姊妹群体中排在第几位...
    (这么邪恶的兴趣...)

    输入格式

    第一行一个整数N 代表小姊妹的个数
    第二行N个整数 代表这位同学N个小姊妹的智商
    接下来若干行 每行一个整数
    代表这位同学看中的别人的小姊妹的智商
    0<=智商<=2^31-1
    0<=N<=1000000

    输出格式

    输出若干行
    每行一个整数 回答新的小姊妹
    在原来小姊妹中智商的排名

    测试样例1

    输入


    1 2 3 4 5 




    5

    输出





    5

    备注

    数据量很大
    C语言用scanf输入输出!
    另外 这个同学的小姊妹群体在这个题中是不会变的~
    他会在看完所有别的同学的小姊妹之后...
    大家听说过 苏格拉底和麦田的故事的吧...
    Bob HAN

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    const int maxn = 1000005;
    int sf_read(){
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    long long n,m,a[maxn],b[maxn],cnt[maxn],sum[maxn];
    int main(){
        cin>>n;
        for(int i = 1;i <= n;i++) a[i] = sf_read();
        sort(a+1,a+1+n);
        a[0] = -1;
        for(int i = 1;i <= n;i++){
            if(a[i] != a[i-1]){
                b[++m] = a[i];
                cnt[m] = 1;
                sum[m] = sum[m-1] + 1;
            }else{
                cnt[m]++;
                sum[m]++;
            }
        }
        b[0] = -1;
        int l,r,mid,ans,mm;
        while(scanf("%d",&mm) == 1){
            l = 0;
            r = m;
            while(l <= r){
                mid = (l + r) >> 1;
                if(b[mid] <= mm){
                    ans = mid;
                    l = mid + 1;
                }else{
                    r = mid - 1;
                }
            }
            if(mm == b[ans])printf("%d
    ",sum[ans-1] + 1);
            else printf("%d
    ",sum[ans] + 1);
        }
        return 0;
    }
  • 相关阅读:
    第一周作业
    第一周作业
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业03
    C语言I博客作业04
    c语言|博客作业02
    字段的约束验证
    [转]AS IS ? ??运算符
    BindingManagerBase 跟踪不一致
  • 原文地址:https://www.cnblogs.com/hyfer/p/5791434.html
Copyright © 2020-2023  润新知