没有想到好的去重方法,有大佬能给我调一下吗?
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef unsigned long long ull;
int t;
ull mod=212370440130137957;
ull base=141;
int prise=233317;
int n;
char s[100005];
int a[100005];
int hush(char s[100005]){
int len=strlen(s);
ull ans=0;
for(int i=0;i<len;i++){
ans=(ans*base+(ull)(s[i]))%mod+prise;
}
return ans;
}
int main(){
cin>>t;
for(int ii=1;ii<=t;ii++){
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%s",s);
a[i]=hush(s);
bool qwq=0;
for(int j=1;j<i;j++){
if(a[j]==a[i]){
qwq=1;
break;
}
}
if(qwq==0)
cout<<s<<" ";
}
cout<<"\n";
}
return 0;
}