[BZOJ2761][JLOI2011]不重复数字 暴力

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2761

直接暴力。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int inline readint(){
 6     int Num=0,Flag=1;char ch;
 7     while((ch=getchar())<'0'||ch>'9') if(ch=='-') break;
 8     if(ch=='-') Flag=-1; else Num=ch-'0';
 9     while((ch=getchar())>='0'&&ch<='9') Num=Num*10+ch-'0';
10     return Num*Flag;
11 }
12 struct DATA{
13     int num,idx;
14     bool tag;
15 }a[50010];
16 bool cmp1(const DATA &a,const DATA &b){
17     return a.num!=b.num?a.num<b.num:a.idx<b.idx;
18 }
19 bool cmp2(const DATA &a,const DATA &b){
20     return a.idx<b.idx;
21 }
22 int tmp[50010],cnt;
23 int main(){
24     int Test=readint();
25     while(Test--){
26         int N=readint();
27         for(int i=1;i<=N;i++){
28             a[i].num=readint();
29             a[i].idx=i;
30         }
31         sort(a+1,a+1+N,cmp1);
32         a[1].tag=true;
33         for(int i=2;i<=N;i++) a[i].tag=a[i-1].num!=a[i].num;
34         sort(a+1,a+1+N,cmp2);
35         cnt=0;
36         for(int i=1;i<=N;i++)
37             if(a[i].tag)
38                 tmp[++cnt]=a[i].num;
39         for(int i=1;i<cnt;i++) printf("%d ",tmp[i]);
40         printf("%d",tmp[cnt]);
41         if(Test>=1) putchar('\n');
42     }
43     return 0;
44 }

 

posted @ 2017-10-09 20:55  halfrot  阅读(184)  评论(0编辑  收藏  举报