摘要:"POJ" 题意:给定若干个长度小于等于
400000的字符串,在每个字符串中求出既是前缀又是后缀的子串长度. 分析:字符串哈希记录前缀值,然后直接枚举长度,分别表示出前缀和后缀的哈希值,并判断是否相等即可. cpp include include include include include
阅读全文
摘要:"POJ" 题意:给定若干个长度小于等于
1e6的小写字母字符串,询问每个字符串最多由多少个相同的子串重复连接而成. 分析:字符串哈希记录字符串每一段的值.然后从小到大枚举
n(设
n为字符串的长度)的约数,判断每一段约数长度的哈希值是否相等即可. cpp include include in
阅读全文
摘要:"POJ" 题意:多组数据,给定两个只含大写字母的字符串
S1,S2,求
S1在S2$中出现了多少次? 分析:字符串哈希模板题,我写了双哈希,好像一个就够了. cpp include include include include include include include include
阅读全文
摘要:分析:对于第一问判断只需要倍长其中一个字符串(相当于要断环为链),然后哈希两个字符串,最后
O(N)扫描是否有一段长度为n的字符串的哈希值相同即可.对于第二问需要用到“字符串的最小表示法”,临时在 "博客" 上学了一下,这个算法也是
O(N)的. cpp // include include i
阅读全文
摘要:写这篇博客仅是为了~~凑齐神龙~~,真想学Hash请另寻高明. 关于哈希Hash,我没有找到什么专门学习它的博客.因为它实在是不太好讲,但实现起来其实是很容易的,它的思想很简单,可是就是不太好阐释,而且它就像离散化一样,一般情况下都用于对数据的预处理. 反正我对Hash的理解就是,当碰到一些很难处理
阅读全文
摘要:"传送门" 题意:给出一个由小写英文字母组成的字符串S,再给出q个询问,每个询问是[L,R]的区间形式,要求回答字符串S在该区间内(所构成的子串)的最短循环节. 分析:首先我们来谈谈循环节有哪些性质?因为简单易懂,就直接列出来了(只列举本题涉及到的): (1)一个字符串的循环节的长度一定是该字符串长
阅读全文