• bzoj2761: [JLOI2011]不重复数字


    2761: [JLOI2011]不重复数字

    Time Limit: 10 Sec  Memory Limit: 128 MB

    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

    直接map去重就行了;

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    #include<cstring>
    #include<map>
    using namespace std;
    
    int n,t,x;
    
    map<int,int> mp;
    
    int main(){
        scanf("%d",&t);
        while(t--){
            bool boo=false;
            mp.clear();
            scanf("%d",&n);
            for(int i=1;i<=n;i++){
                scanf("%d",&x);
                if(!mp[x]){
                    mp[x]=1;
                    if(!boo){
                        boo=true;
                        printf("%d",x);
                    }else
                        printf(" %d",x);
                }
            }
            printf("
    ");
        }
    }

     

  • 相关阅读:
    .Net反编译实战
    PHP Yii框架开发——组织架构网站重构
    JS数据绑定模板artTemplate试用
    C# LDAP 管理(创建新用户)
    Ajax跨域请求数据实例(JSOPN方式)
    【AWK】:常用总结
    【Spark调优】:RDD持久化策略
    【ElasticSearch】:QueryDSL
    【ElasticSearch】:Mapping相关
    【ElasticSearch】:索引Index、文档Document、字段Field
  • 原文地址:https://www.cnblogs.com/WQHui/p/7681745.html
Copyright © 2020-2023  润新知