字符串哈希
hesorchen
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
牛客寒假集训营第四场B字符串哈希+二分
题目 武辰延的字符串 赛时没想到hashO(1)O(1)O(1)判断 枚举S1,二分S2长度,利用Hash判断两字符串相等。 代码 AC代码: /* * @Author: hesorchen * @Date: 2020-11-26 09:12:46 * @LastEditTime: 2021-02-21 16:19:05 * @Description: 栽种绝处的花 */ #include <bits/stdc++.h> using namespace std; const unsi原创 2021-02-21 16:23:08 · 206 阅读 · 0 评论 -
字符串哈希On求最长回文子串
模板题链接 AcWing139. 回文子串的最大长度 众所周知,manacher可以On求最长回文子串,但是神奇的字符串hash也可以做到求最长回文串。 步骤: 预处理字符串,类似于manacher,每两个字符中间插入‘#’,因为这样才能枚举中心。 预处理正哈希和逆哈希,如果正哈希[l,r]==逆哈希[l,r],说明两个字符串相同。 枚举回文中心,二分求回文半径。 可以看出,时间复杂度是O(nlogn)O(nlogn)O(nlogn),代码如下: unsigned long long order1[2原创 2020-09-18 20:07:11 · 5538 阅读 · 5 评论 -
字符串Hash
字符串Hash原理,将字符串映射成一个值,是一个单向加密的过程。比较简单和常用的是进制哈希,我们把字符串看成是p进制数,然后使用unsigned long long的自然溢出(相当于是对264−12^{64}-1264−1取模),如果两个字符串的hash值相同,则可以认为两个字符串相同。 单个字符串的Hash值 要求长度为len的字符串str的Hash值 先预处理出一个pwd[]数组,pwd[i]表示pip^ipi。 Hash[]表示字符串的哈希值(p进制取模值)。显然有 Hash[i]=(Hash[i−1原创 2020-09-16 18:03:59 · 3867 阅读 · 0 评论
分享