hash 模板
Posted wang者归来
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hash 模板相关的知识,希望对你有一定的参考价值。
hash
功能: hash一般用于快速判断两个或多个字符串是否匹配。
实现 : 想一想,如果比较两个数子的话是很方便的很快,那么我们把整个字符串看成一个大数。
它是base进制的len位数。但是我只会比较十进制啊,那就转成10进制,但又太大了(成百上千位啊)
不得以,我只好请来一个大质数MOD把这些大数映射到一个较小的范围内比较。
代码:
#include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<math.h> #include<cstdio> using namespace std; #define LL unsigned long long #define MOD 1000000007 #define base 211 LL n,b[20000]; LL get_hash(char s[ ]) { int len=strlen(s); LL ans=0; for(int i=0;i<len;i++) ans=(ans*base + (LL) s[i])%MOD; return ans; } int main() { scanf("%lld",&n); char s[60000]; for(int i=1;i<=n;i++) { cin>>s; b[i]=get_hash(s); } }
以上是关于hash 模板的主要内容,如果未能解决你的问题,请参考以下文章