字符串哈希
来源:互联网 发布:淘宝店怎么设置折扣价 编辑:程序博客网 时间:2024/04/28 14:42
字符串hash一种玄学的技巧
递推公式:H[i]=H[i+1]*x+s[i] (H[len]=0)
预处理出H数组后,求i~j的长度为L的哈希值,有公式:H[i]-H[j+1]*x^L
一般情况下,我们用map存hash值(曲神表示map只存数字的话不会被卡)
用ull存hash值,这样直接%2^64,比较快
如果不放心,可以选一个大质数%一下(1e9+7,998244353)
//这里写代码片#include<cstdio>#include<cstring>#include<iostream>#include<map>#define ll unsigned long longusing namespace std;const ll x=131;int n,ans; char s[2000];map<ll,int> S;int hash(char *s){ ll a=0; int len=strlen(s); for (int i=len-1;i>=0;i--) a=a*x+s[i]; if (S.count(a)) return 0; S[a]=++ans;}int main(){ scanf("%d",&n); ans=0; S.clear(); for (int i=1;i<=n;i++) { scanf("%s",s); hash(s); } printf("%d",ans); return 0;}
阅读全文
0 0
- FZU 2137 奇异字符串 字符串哈希
- 字符串哈希函数
- 字符串哈希
- 字符串哈希函数
- 字符串哈希函数
- 生成哈希字符串
- 字符串哈希函数
- 字符串哈希函数
- hdu2920 字符串哈希
- 字符串哈希算法
- POJ3461 字符串哈希
- 字符串哈希函数
- 字符串哈希函数
- 字符串哈希函数
- hdu4821 字符串哈希
- 字符串哈希函数
- 字符串哈希函数
- 字符串哈希函数
- 随机函数
- 歌剧小杂文3:瓦格纳-颠覆歌剧的无冕之王
- jquery的一些验证
- Linux 常用命令
- 2017年11月8日 第三十天次总结
- 字符串哈希
- jQuery中on方法向回调函数传递参数
- 算法之选择排序算法
- yum与apt-get的区别以及两者更新源(阿里/网易【163】)
- 【bzoj1297】[SCOI2009]迷路
- Thinkphp5 的widget功能使用详解
- Linux Bash的快捷键
- 手机端qq和电话上传
- 【第1104期】14 个你可能不知道的 JavaScript 调试技巧