[ 备战NOIP2016 ] 字符串匹配 - 哈希
2016-10-08 21:28
369 查看
哈希是个看脸的函数,如果你选的质数有问题,那可能你就会被卡n多分。
主要过程:
问题:hash的值会非常大,ull也存不下,解决方法:
主要过程:
1.取一个大于字符集的素数p 2.预处理出P[i]=p^i 3.计算前缀hash hash[i]=hash[i-1]*p+s[i]; calc(l,r) = hash[r]-hash[l-1]*P[r-l+1];
问题:hash的值会非常大,ull也存不下,解决方法:
1.自然溢出:ull做hash会自动对2^64取模,但是因为2^64不是质数,容易被卡。 2.取模:找一个靠谱的质数,对该质数取模。(如2333,1000000007......) 3.双关键字取模:如果对脸不自信,可以找: (1)两个质数,分别对他们取模。 (2)两个p。 但是时间复杂度会增加,自行抉择吧。
例题:bzoj3555
给N个字符串,求有多少对等长且恰好只有一位不同。
枚举哪一位不选,求有多少对字符串剩下的串相同。 * 可以先把每个字符串所有的hash求出来
哈希表
其实我也不会写
相关文章推荐
- 哈希 字符串匹配
- [ 备战NOIP2016 ] 线段树
- Cutting (暴力 + 滚动哈希判字符串匹配)
- [ 备战NOIP2016 ] 动态规划基本模型
- 简单字符串匹配问题-——用哈希解决
- [ 备战NOIP2016 ] 杂项
- 一种字符串哈希方法 与o(n+m)字符串匹配
- Tyvj 2016 (Clover 9) 外星人 字符串匹配:KMP
- 【jzoj5093】【GDSOI2017第四轮模拟day3】【字符串匹配】【哈希】
- [ 备战NOIP2016 ] 数论
- [ 备战NOIP2016 ] 根据数据范围决定算法复杂度
- [ 备战NOIP2016 ] 斐波那契数列
- [ 备战NOIP2016 ] To-do List
- [ 备战NOIP2016 ] 杂题
- 算法模板——哈希单模板字符串匹配
- 【NOIP2016提高组11.7】涂色游戏
- 201409-3 字符串匹配 ccf
- 字符串匹配之Boyer-moore算法
- JZOJ 4866. 【NOIP2016提高A组集训第8场11.5】禅与园林艺术
- 字符串匹配之BM和KMP算法