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