zoukankan      html  css  js  c++  java
  • BZOJ 2761: [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

     
    对于每组数据,输出一行,为去重后剩下的数字,数字之间用一个空格隔开。
    题解:每次用 $set$ 查询一个数是否插入过即可. 
    #include<bits/stdc++.h>
    #define maxn 100000 
    using namespace std;
    void setIO(string s)
    {
    	string in=s+".in"; 
    	freopen(in.c_str(),"r",stdin); 
    }
    set<int>S; 
    set<int>::iterator it; 
    int arr[maxn]; 
    inline void solve()
    {
    	int n,i,a; 
    	scanf("%d",&n); 
    	for(i=1;i<=n;++i) 
    	{
    		scanf("%d",&a); 
    		if(S.find(a)==S.end()) printf("%d ",a), S.insert(a); 
    	}
    	S.clear(); 
    	printf("
    "); 
    }
    int main()
    {
    	// setIO("input"); 
    	int T; 
    	scanf("%d",&T); 
    	while(T--) solve(); 
    	return 0; 
    }
    

      

  • 相关阅读:
    Ghost博客安装
    PHP变量作用域
    ssh文件传输命令:sz与rz命令
    excel怎么固定第一行
    memcache和redis区别
    Memcache分布式部署方案
    Memcache服务器端参数说明
    Memcache基础教程
    在Windows下安装Memcached
    MySQL体系结构和存储引擎概述
  • 原文地址:https://www.cnblogs.com/guangheli/p/11093406.html
Copyright © 2011-2022 走看看