bzoj 2761: [JLOI2011]不重复数字

版权声明:本文为博主原创文章,转载请联系博主。 https://blog.csdn.net/everlasting_20141622/article/details/78856790

题目链接

新博客连接:https://www.everlasting.wang/archives/208


【想说的话】

水水水水水水水水水水水水水水水

水水水水水水水水水水水水水水水水水

水水水水水水水水水水水水水水水

水水水水水水水水水水水水水水水水水水水水


【题解】

直接用map保存某个数是否出现过
注意:不能一边扫一边输出,末尾有空格会PE

【代码

#include<bits/stdc++.h>

using namespace std;

inline int rd(){
	int x=0,y=1;char c=getchar();
	while(c<'0' || c>'9'){if(c=='-')y=-y;c=getchar();}
	while(c>='0'&&c<='9')x=x*10+c-'0',c=getchar();
	return x*y;
}

int T,n;
map<int,bool>mp;
vector<int>ans;

void work(){
	mp.clear();
	ans.clear();
	n=rd();
	for(int i=0; i<n; i++){
		int x=rd();
		if(!mp[x]){
			mp[x]=1;
			ans.push_back(x);
		}
	}
	printf("%d",ans[0]);
	for(int i=1; i<ans.size(); i++)printf(" %d",ans[i]);
	puts("");
}

int main(){
	T=rd();
	while(T--){
		work();
	}
	
	return 0;
}


阅读更多

没有更多推荐了,返回首页