解题思路
字符串HASH模板题,按照上述的字符串HASH求出字符串的HASH值,然后进行排序即可求出答案。
代码
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <iomanip>
#include <cmath>
using namespace std;
typedef unsigned long long ull;
ull p=131;
ull a[100010];
int n,ans,cnt;
string s;
bool check()
{
if(s[0]=='E'&&s[1]=='N'&&s[2]=='D')
return 1;
return 0;
}
ull hash(string s)//HASH板子
{
ull k=0;
for(int i=0;i<s.size();i++)
k=k*p+s[i]-'a';
return k;
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
cin>>s;
a[i]=hash(s);
}
sort(a+1,a+n+1);
for(int i=1;i<=n;i++)
{
if(a[i]!=a[i+1])
ans++;
}
printf("%d",ans);
}