洛谷P3370 【模板】字符串哈希(c嘎嘎)
题目链接:P3370 【模板】字符串哈希 - 洛谷 | 计算机科学教诲新生态题目难度:普及
https://i-blog.csdnimg.cn/direct/4e69799749f24892b201a0bb90ada5d9.png
解题思路:利用哈希算法,将每一个字符串映射到一个值域较小、可以方便比较的数,然后将哈希值存入到set(不能有重复元素),最后输出set的大小。
代码部分:
#include<bits/stdc++.h>//万能头文件
using namespace std;
typedef unsigned long long ULL;
const int N = 100010,P = 131;
int n;
ULL h;
char s;
set<ULL>st;
int get_hash(char s[])//哈希函数
{
h = 0;
int len = strlen(s);
for(int i=0; i<len; i++)
{
h = h * P + s;
}
return h;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin >> n;
while(n--)//读入
{
cin >> s;
st.insert(get_hash(s));//插入set中
}
cout<<st.size();
return 0;
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]