zoukankan      html  css  js  c++  java
  • BZOJ 2761: [JLOI2011]不重复数字

    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来进行输入输出操作,以免浪费不必要的时间。


     思路:set大法好

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<queue>
     5 #include<set>
     6 using namespace std;
     7 int ans[10000];
     8 int main()
     9 {
    10         int t,n,x;
    11         scanf("%d",&t);
    12         while(t--)
    13         {
    14                 set<long long>a;
    15                 scanf("%d",&n);
    16                 int h=0;
    17                 for(int i=1;i<=n;i++)
    18                 {
    19                         scanf("%d",&x);
    20                         if(!a.count(x))
    21                         {
    22                                 a.insert(x);
    23                                 ans[++h]=x;
    24                         }
    25                 }
    26                 for(int i=1;i<h;i++)printf("%d ",ans[i]);
    27                 printf("%d
    ",ans[h]);
    28         }
    29         return 0;
    30 }
  • 相关阅读:
    模块移植-加宏选择性编译
    模块-各个模块的路径所在
    ubuntu-系统卡慢解决(转载)
    meld文件的脚本
    artTemplate模板引擎
    前端完全分离和前端不完全分离
    px em rem的区别
    原型和原型链
    阻止默认事件
    document.ready和onload的区别
  • 原文地址:https://www.cnblogs.com/philippica/p/4415882.html
Copyright © 2011-2022 走看看