随笔分类 -  字符串——哈希

摘要:概念 用hash求最长回文串/回文串数 首先,易知,回文串具有单调性。 因此,可以二分。 通常,枚举一下起点或者中点,然后二分长度。 这样复杂度为 O(nlogn),逊色于马拉车 O(n),但在时限不那么紧的情况下,hash也是不错的选择。 例题 题意:对于一个 0/1 串,如果将这个字符串 阅读全文
posted @ 2019-08-19 10:06 Rogn 阅读(398) 评论(0) 推荐(0) 编辑
摘要:题意 给出两个字符串 s1,s2,求 s2s1 中出现的次数。 分析 预处理出两个字符串的哈希值,再逐位比较。 时间复杂度为 O(n+m),和 kmp 算法一样。 可能常数大一点点,还有就是没法用 kmpnext 数组。 参考链接:https://zh 阅读全文
posted @ 2019-08-19 09:41 Rogn 阅读(432) 评论(0) 推荐(0) 编辑
摘要:概念 查询字串的hash值 我们所说的哈希通常都是进制哈希,因为它具有一些很方便的性质,例如,具有和前缀和类似的性质。 假设一个字符串的前缀哈希值记为 h[i],进制为 base,那么显然 h[i]=h[i1]×base+s[i]. 记 p[i] 为 $bas 阅读全文
posted @ 2019-08-19 09:34 Rogn 阅读(457) 评论(0) 推荐(1) 编辑
摘要:只讨论最常用的进制哈希。 例题 洛谷P3370 题意:求 N 个字符串中有多少个不同的字符串(N104)。 分析: 对每个字符串求一次哈希值,然后统计有多少个不同的哈希值。 单哈希 选择一个大质数,或者自然溢出。 双哈希 采用两个模数,哈希冲突的概率会降低很多,但常数会增大。 参考 阅读全文
posted @ 2019-08-19 09:16 Rogn 阅读(283) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示