• [BZOJ2761] [JLOI2011] 不重复数字 (set)


    Description

      给出N个数,要求把其中重复的去掉,只保留第一次出现的数。
      例如,给出的数为1 2 18 3 3 19 2 3 6 5 4,其中2和3有重复,去除后的结果为1 2 18 3 19 6 5 4。

    Input

      输入第一行为正整数T,表示有T组数据。
      接下来每组数据包括两行,第一行为正整数N,表示有N个数。第二行为要去重的N个正整数。

    Output 

      对于每组数据,输出一行,为去重后剩下的数字,数字之间用一个空格隔开。

    Sample Input

    2
    11
    1 2 18 3 3 19 2 3 6 5 4
    6
    1 2 3 4 5 6

    Sample Output

    1 2 18 3 19 6 5 4
    1 2 3 4 5 6

    HINT

      对于30%的数据,1 <= N <= 100,给出的数不大于100,均为非负整数;

      对于50%的数据,1 <= N <= 10000,给出的数不大于10000,均为非负整数;

      对于100%的数据,1 <= N <= 50000,给出的数在32位有符号整数范围内。

      提示:

      由于数据量很大,使用C++的同学请使用scanf和printf来进行输入输出操作,以免浪费不必要的时间。 

    Source

    Solution

      set即可

      ⚠行末没有空格

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 set<int> S;
     4 int main()
     5 {
     6     int t, n, a;
     7     scanf("%d", &t);
     8     while(t--)
     9     {
    10         scanf("%d%d", &n, &a);
    11         S.clear(), S.insert(a);
    12         printf("%d", a);
    13         for(int i = 2; i <= n; i++)
    14         {
    15             scanf("%d", &a);
    16             if(S.find(a) == S.end())
    17             {
    18                 S.insert(a);
    19                 printf(" %d", a);
    20             }
    21         }
    22         puts("");
    23     }
    24     return 0;
    25 }
    View Code
  • 相关阅读:
    step_by_step_ABP规约模式
    阅读书单
    关于我
    友情链接
    数据夜话之大数据OLAP数据库概览
    Spark实战
    StormDRPC流程解读
    Curator源码阅读
    Storm使用总结
    JNI相关使用记录
  • 原文地址:https://www.cnblogs.com/CtrlCV/p/5449898.html
Copyright © 2020-2023  润新知