![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hash
The___Flash
这个作者很懒,什么都没留下…
展开
-
Pokegene(ICPC North Central NA Contest 2018,LCP)
一.题目链接: Pokegene 二.题目大意: 三.分析: 题解给了两种解法:后缀数组 || 虚树 这里给出一种小白解法(其实是上面那两种我都不会) 首先对原字符串排序,这样就可以保证具有相同前缀的字符串会挨在一起. 这样求一下 s[i] 与 s[i + k -1] 点的 lcp,另外需要求 s[i] 与 s[i + k] 的 lcp 和 s[i] 与 s[i - 1] 的 ...原创 2020-05-01 01:05:56 · 260 阅读 · 0 评论 -
A Horrible Poem (HYSBZ - 2795,字符串哈希 + 枚举最小循环节小技巧~)
一.题目链接: HYSBZ-2795 二.题目大意: 给一个长度为 n 的字符串,q 次询问,每次问 s[l...r] 的最小循环节. 三.分析: 技巧一:字符串 s[l, r] 具有循环节 k 等价于 s[l, r - k] == s[l + k, r]. 技巧二:线性筛中预处理出每个数的最小质因子,可进行质因数分解. 技巧三:字符串的最小循环节可通过对字符串长度的...原创 2020-04-17 23:08:16 · 451 阅读 · 0 评论 -
Snowflake Snow Snowflakes (POJ - 3349 ,Hash表查找)
一.题目链接: POJ-3349 二.题目大意: 有 n 片雪花,每片雪花有六个角,若六个角均相同,则称两片雪花相等. 雪花六个角的记录可能顺时针,可能逆时针,开始点不确定. 让你判断是否存在两片相同的雪花. 三.分析: 居然还有考 Hash 表的题 一直觉得数据结构课本很鸡肋 题目不难,这里只是存个板子. 哈希函数选用除留余数法,利用链地址法处理冲突. 四.代码实现: #...原创 2019-08-05 15:01:58 · 148 阅读 · 0 评论 -
兔子与兔子(算法竞赛进阶指南 P62,字符串 Hash)
一.题目链接: 兔子与兔子 二.题目大意: 给一个串 s. q 次询问,每次询问给出 l1, r1, l2, r2. 让你判断 s[l1, r1] == s[l2, r2] ? 三.分析: 感觉这个挺 nb 的,就写个博客(题解请见书)纪念一下. 字符串 Hash 可以 O(N) 预处理字符串的前缀哈希值,O(1)时间查询任意子串哈希值. 四.代码实现: #inclu...原创 2019-08-05 15:44:33 · 137 阅读 · 0 评论 -
Palindrome (POJ - 3974 ,字符串 Hash + 二分 || Manacher)
一.题目链接 POJ-3974 二.题目大意: 求 s 的最大回文子串长度. 三.分析: 此题可以用 字符串 Hash + 二分 或者是 Manacher 算法.(后者明显比前者块) 由于这是 Manacher 的模板题,所以这里只讲第一种方法. O(N)扫描字符串 s,建立前缀与后缀 Hash 数组. 之后枚举回文串的中心位置,二分答案即可. ps:要分别处理奇偶长度的回文串....原创 2019-08-05 19:50:15 · 141 阅读 · 0 评论 -
后缀数组(算法竞赛进阶指南 P64,字符串 Hash + 二分答案)
一.题目链接: 后缀数组 二.题目大意: 给字符串 s 的所有后缀按照字典序排序. 输出排序后的编号 和 排序后后缀数组 i 与 i - 1 的最大前缀长度. 三.分析: 如果直接用 sort 对每一个后缀排序,时间复杂度为,需要优化. 在 cmp 函数中,对于两个后缀 a,b 来讲,分别对应 s[a ~ n] 和 s[b ~ n]. 那不妨求出第一个位置,使得. 这点可用字...原创 2019-08-05 20:54:24 · 197 阅读 · 0 评论