#include<iostream>
#include<set>
#include<cstring>
#include<cstdio>
#define ULL unsigned long long
using namespace std;
const ULL zh=1145141;
int n,len;
ULL na=1,sum=0,now;
char a[10000];
set<ULL>s;
int main()
{
cin>>n;
while(n--)
{
cin>>a+1;
len=strlen(a+1);
now=1;
for(int i=1;i<=len;i++)
{
now=now*zh+(ULL)a[i];
}
if(s.count(now)==1)
{
continue;
}
else
{
sum++;
s.insert(now);
}
}
cout<<sum<<endl;
return 0;
}
不是这个和直接用set有什么区别吗?这个还有概率重复,用set应该就不会重复了吧