字符串哈希小结(BKDR,RK)
前言
A:这么简单的东西,怎么现在才学??
B:别提了,还不是因为菜o(╥﹏╥)o
A:那打算讲些什么东西
B:\(BKDRHash\)、\(Rabin-karp\)以及简单应用
简洁
所谓字符串哈希:其实就是把字符串映射成数值储存下来分别直接比较
\(BKDRHash\):程序便于记忆和使用,冲突概率较低,在各大书籍和资料中测试效果位居前列
\(Rabin-karp\):便于提取字符串子串
做法
\(BKDRHash\):把字符串当成seed进制数来处理
const int seed=31;
inline int BKDRhash(){
int H(0),len(strlen(s));
for(int i=0;i<len;++i)
H=(H*seed+s[i])&0xFFFFFFF;
return H;
}
\(BKDRHash\):\(h[i]=(s[0]×p^{i}+s[1]×p^{i-1}+...+s[i]×p^0(mod ~x)\),手玩能推出\(h[i][j]=h[j]-h[i-1]×p^{j-i+1}(mod ~x)\)
inline int RK(){
int len(strlen(s));
for(int i=0;i<len;++i)
H[i]=(H[i-1]*p+s[i])%x;
return H[len-1];
}
经典应用
挖坑待填
字符串哈希小结(BKDR,RK)的更多相关文章
- BKDR字符串哈希
BKDR字符串哈希 bkdrhash冲突的可能性非常小,但是由于\(hash\)值非常大不能映射到哈希数组地址上,所以可以通过取余,用余数作为索引地址.但这样做造成了可能的地址冲突. #include ...
- 洛谷 P3370 字符串哈希 (模板)
<题目链接> <转载于 >>> > 题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共 ...
- HDU 1880 魔咒词典(字符串哈希)
题目链接 Problem Description 哈利波特在魔法学校的必修课之一就是学习魔咒.据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一 ...
- 洛谷P3370 【模板】字符串哈希
P3370 [模板]字符串哈希 143通过 483提交 题目提供者HansBug 标签 难度普及- 提交 讨论 题解 最新讨论 看不出来,这题哪里是哈希了- 题目描述 如题,给定N个字符串(第i个 ...
- HDU2594 Simpsons’ Hidden Talents 字符串哈希
最近在学习字符串的知识,在字符串上我跟大一的时候是没什么区别的,所以恶补了很多基础的算法,今天补了一下字符串哈希,看的是大一新生的课件学的,以前觉得字符串哈希无非就是跟普通的哈希没什么区别,倒也没觉得 ...
- LA 6047 Perfect Matching 字符串哈希
一开始我用的Trie+计数,但是不是计多了就是计少了,后来暴力暴过去的…… 看了别人的代码知道是字符串哈希,但是仍有几个地方不理解: 1.26^500溢出问题 2.没考虑哈希碰撞? 跪求指点! #in ...
- AC日记——【模板】字符串哈希 洛谷 3370
题目描述 如题,给定N个字符串(第i个字符串长度为Mi,字符串内包含数字.大小写字母,大小写敏感),请求出N个字符串中共有多少个不同的字符串. 友情提醒:如果真的想好好练习哈希的话,请自觉,否则请右转 ...
- 从Hash Killer I、II、III论字符串哈希
首先,Hash Killer I.II.III是BZOJ上面三道很经典的字符串哈希破解题.当时关于II,本人还琢磨了好久,但一直不明白为啥别人AC的代码都才0.3kb左右,直到CYG神犇说可以直接随机 ...
- 【NOIP模拟】Grid(字符串哈希)
题目背景 SOURCE:NOIP2016-RZZ-1 T3 题目描述 有一个 2×N 的矩阵,矩阵的每个位置上都是一个英文小写字符. 现在需要从某一个位置开始,每次可以移动到一个没有到过的相邻位置,即 ...
随机推荐
- 认识oracle的update更新
这两天给新同事安排了一个工作,即做一个update 的级联更新,在实际操作中发现了一个问题.就是对于Oracle的更新的语法,大部分人尤其是学过SqlServer的人在使用oracle的时候对于ora ...
- cocos2d-x:七彩连珠
大学前,我一直以为学计算机就是学做游戏,或者玩游戏...(我果断的用大学的差不多五分之二实践了后面半块.) 大学后,人们一直以为学计算机的就是 修电脑.装机.盗qq号.word.excel....最近 ...
- Java之美[从菜鸟到高手演变]之字符串
一.String 1.String简介 初始化: 一般由String声明的字符串,长度是不可变的,这也是它与StringBuffer和StringBuilder最直观的一个区别.一般初始化方式:Str ...
- 动软生成的WCP DAO层模板(不使用接口)
本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...
- 1028 大数乘法 V2(FFT or py)
1028 大数乘法 V2 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 给出2个大整数A,B,计算A*B的结果. Input 第1行:大数A 第2行:大数B ...
- 图片热区——map的用法
<area>标记主要用于图像地图,通过该标记可以在图像地图中设定作用区域(又称为热点),这样当用户的鼠标移到指定的作用区域点击时,会自动链接到预先设定好的页面.其基本语法结构如下: 1 & ...
- javaScript Number对象
Number 对象 Number 对象是原始数值的包装对象. 创建 Number 对象的语法: var myNum=new Number(value); var myNum=Number(value) ...
- RabbitMQ安装篇
一切不是自己实战,且跑不起来的程序都是在耍流氓! 先下载: http://www.erlang.org/downloads erlang 包
- SSL逐渐演变到TLS
w https://zh.wikipedia.org/wiki/超文本传输安全协议
- <2013 07 22> 游历西欧
从本月11号开始到昨天,10天时间,和其他六位同学畅游了西欧,路经慕尼黑-巴塞罗马-尼斯-马赛-巴黎-阿姆斯特丹,最后回到慕尼黑,每个地方都待了两天,参观了主要的景点和建筑,见识了本地文化与饮食. 令 ...