首页 > 其他 > 详细

字符串hash

时间:2019-09-19 00:58:01      阅读:86      评论:0      收藏:0      [点我收藏+]

目的:构造一个数字使之唯一代表一个字符串。

学习链接:https://www.luogu.org/blog/pks-LOVING/zi-fu-chuan-xue-xi-bi-ji-ha-xi-hash-yu-zi-dian-shu-trie#

 

自用模板:

P3370 【模板】字符串哈希:https://www.luogu.org/problemnew/show/P3370

技术分享图片
#include<bits/stdc++.h>
using namespace std;
#define ull unsigned long long
const int maxn=1e4+10;
ull base=131,mod=21237044013013795711;
int prime=233317;
ull hashe(char *s)
{
    int len=strlen(s);
    ull ans=0;
    for(int i=0;i<len;i++)
    {
        ans=(ans*base+(ull)s[i])%mod+prime;
    }
    return ans;
}
int main()
{
    int n,ans=1;
    char s[maxn];
    ull a[maxn]={0};
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%s",s);
        a[i]=hashe(s);
    }
    sort(a+1,a+n+1);
    for(int i=1;i<n;i++)
    {
        if(a[i]!=a[i+1])ans++;
    }
    printf("%d\n",ans);
    return 0;
}
View Code

 

字符串hash

原文:https://www.cnblogs.com/myrtle/p/11546323.html

(3)
(3)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!