• 6.30考试


    点名
    【题目描述】
    在J班的体育课上, 同学们常常会迟到几分钟, 但体育老师的点名却一直很准时。
    老师只关心同学的身高, 他会依次询问当前最高的身高, 次高的身高, 第三高的身高,
    等等。在询问的过程中,会不时地有人插进队伍里。你需要回答老师每次的询问。
    【输入格式】
    第一行两个整数 n m,表示先后有 n 个人进队,老师询问了 m 次
    第二行 n 个整数,第 i 个数 $A_i$ 表示第 i 个进入队伍的同学的身高为 $A_i$
    第三行 m 个整数,第 j 个数 $B_j$ 表示老师在第 $B_j$ 个同学进入队伍后有一次询问
    【输出格式】
    m 行,每行一个整数,依次表示老师每次询问的答案。数据保证合法
    【样例输入】
    7 4
    9 7 2 8 14 1 8
    1 2 6 6
    【样例输出】
    9
    9
    7
    8
    【样例解释】
    (9){No.1 = 9}; (9 7){No.2 = 9}; (9 7 2 8 14 1){No.3 = 7; No.4 = 8}
    【数据范围】
    40%的数据保证 $n leq 1000$
    100%的数据保证 $1 leq m leq n ≤ 30000;0 leq A_i < 2^{32}$

    思路分析:STL set 水过,虽然不是100,但是分数还是很可观的。

    set是已排序的...然后就像暴力一样插入元素,看是否需要输出即可。

    迭代器的用法:同指针的用法,一样支持++,--。

    要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...要用long long...

    用multiset...数据有重复,set会爆炸...被卡30分(不读题啊!)

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<set>
     4 #define maxn 30010
     5 using namespace std;
     6 long long n,m,x,c[maxn],a[maxn],cnt;
     7 set<long long>miku;
     8 set<long long>::iterator hatsune;
     9 int main()
    10 {
    11 #ifndef LOCAL
    12     freopen("rollcall.in","r",stdin);
    13     freopen("rollcall.out","w",stdout);
    14 #endif
    15     scanf("%d%d",&n,&m);
    16     for(long long i=1; i<=n; i++)
    17         scanf("%d",&a[i]);
    18     for(long long i=1; i<=m; i++)
    19     {
    20         scanf("%d",&x);
    21         c[x]++;
    22     }
    23     miku.clear();//不要啊! 
    24     for(long long i=1; i<=n; i++)
    25     {
    26         miku.insert(a[i]);//插♂入(怎么回事!)... 
    27         while(c[i])
    28         {
    29             c[i]--;
    30             hatsune=miku.begin();
    31             for(long long j=1; j<=cnt; j++)
    32                 hatsune++;
    33             cout<<*hatsune<<endl;
    34             cnt++;
    35         }
    36     }
    37     return 0;
    38 }
    View Code

    End.

  • 相关阅读:
    ExcelManager基于.Net的Excel读写管理类库(二)
    ExcelManager基于.Net的Excel读写管理类库(一)
    NHibernate初探!
    也谈软件工程!
    本人初学WCF ,请教一个问题
    初来咋到,今天终于在这里建起了一个家!
    c#中委托和直接函数调用用什么区别,好处和目的在哪?
    CreateThread, AfxBeginThread,_beginthread, _beginthreadex的区别
    C++线程同步
    C++中using的作用
  • 原文地址:https://www.cnblogs.com/TheRoadToAu/p/7097726.html
Copyright © 2020-2023  润新知