//
#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long ULL;
const int N=11111;
set<ULL> st;
ULL BKDRhash( const string& s )
{
ULL r=131,ans,i; // r进制 ans哈希值
for( ans=i=0;i<s.size();i++ )
{ // 进制 > 最大单值
ans=ans*r+( s[i]-'a' ); // +1 也行 // ans=ans*r+s[i];
}
return ans; // 自动 ans % 2^64
}
// 进制 r: 31 + 131 13131 + 1313 131313
int main()
{
string s;
int n;
while( cin>>n )
{
st.clear();
while( n-- ) { cin>>s; st.insert( BKDRhash(s) ); }
cout<<st.size()<<endl;
}
return 0;
}
蓝桥杯_字符串统计_进制哈希
猜你喜欢
转载自blog.csdn.net/qq_63173957/article/details/125304949
今日推荐
周排行