鼠扑 发表于 2024-12-23 00:48:11

洛谷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]
查看完整版本: 洛谷P3370 【模板】字符串哈希(c嘎嘎)