
字符串hash
nbl97
这个作者很懒,什么都没留下…
展开
-
hdu4821 String (字符串hash + map)
题目:一个字符串S,找出 S 有几个子串满足如下要求:子串长度是M*L子串由M个长度为L的小子串相连而成。分析:最朴素的想法肯定是枚举1~n-L+1依次作为子串的开始,然后算出它之后的M个长度为L的串的值是否相同。这样的时间复杂度是O(n * M),不太能接受,尝试优化。 为了方便描述我们让M = L = 3 假设我们已经得到了以1开头的3个长L的串,###@@@^^^,现在想算下一个,只原创 2017-09-04 01:39:55 · 338 阅读 · 0 评论 -
uva12338 Anti-Rhyme Pairs (字符串hash+二分)
题目:给N个字符串,Q组询问,每次询问(i,j),输出第 i 个串和第 j 个串的最长公共前缀长度。 N <= 1e5 ,L <= 1e4, N * L <= 1e6分析:这道题二分加字符串哈希很容易想到,没什么可说的。 两个注意的点:字符串的N和L给的很不舒服,没法直接开二位数组,可以考虑用string和vector。或者,把所有字符串存到一个1e6的一维数组中,只不过需要记录每个字符串的起原创 2017-09-04 22:07:29 · 207 阅读 · 0 评论 -
hdu4300 Clairewd’s message (字符串hash)
题目:史上最难读懂的题目。 给一个字符串,由密文+明文两部分组成,明文就是密文的翻译。密文是完整的,但是明文不一定完整,也可能没有明文。给出明文到密文的字母对应。输出密文+完整的明文。若有多种情况使得总长最短。分析:原字符串 s 是 密+明,将它按照翻译方式全翻译完后得到 乱+密,我们将得到的字符串称为 t 。我们只需要 t 的后缀和 s 的前缀的最大匹配即可得到完整的密文部分,再由那个翻译表,就原创 2017-09-03 00:12:42 · 224 阅读 · 0 评论 -
hdu4080 Stammering Aliens(二分+字符串hash)
题目:在一个字符串中,找出出现次数不小于m次的最长的子串。 输出最长的子串长度和最右边一个子串的起始位置。分析:字符串hash可做。 二分子串的长度,然后处理出来所有这个长度的子串的值,排序后找有没有相同的大于等于m个即可。代码:#include <iostream>#include <algorithm>#include <queue>#include <stack>#include原创 2017-09-03 16:17:34 · 320 阅读 · 0 评论