
KMP/字符串hash
文章平均质量分 51
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
字符串匹配-Kmp算法详解
OI竞赛中,字符串匹配也是一个比较有趣的东西 一般地,字符串匹配问题通常给出原串(String)与模式串(Pattern),要求输出模式串在原串中出现的起始位置。比如: 原串:abacaba 模式串:aca 答案就是3 今天我们来讨论只有两个串的情况(就是没有trie和AC自动机QAQ) 对于这种问题,我们有好几种方法来解决1.暴力只需暴力枚举起始位置,然后暴力判断,复杂度O(n*m)。原创 2017-03-14 12:50:41 · 421 阅读 · 0 评论 -
字符串hash+map——BZOJ2081/Luogu3498 [Poi2010]Beads
http://www.lydsy.com/JudgeOnline/problem.php?id=2081 https://www.luogu.org/problem/show?pid=3498 一题字符串hash 一开始因为各种原因导致我TLE和WA等等。。。。。 发现基数base会有各种问题,注意一下就好了 我的方法是hash+map映射,所以long long自然溢出不影响结果 所以原创 2017-03-16 15:41:43 · 484 阅读 · 0 评论 -
KMP——BZOJ3670/Luogu2375 [Noi2014]动物园
http://www.lydsy.com/JudgeOnline/problem.php?id=3670 https://www.luogu.org/problem/show?pid=2375 洛谷有分点信息真好。。。(用多了不好不利于自身提高) 标算Kmp,第一次写渣了BZOJ只有提示WA洛谷一测爆蛋 这题的主要坑点在于限制后缀与前缀不重叠,其他和普通的Kmp并没有什么本质区别 这个其实原创 2017-03-14 19:39:06 · 278 阅读 · 0 评论 -
KMP——51nod1277 字符串中的最大值
https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1277 标算Kmp啦 题目中让我们求的前缀出现次数是可以用Kmp中的nex数组推出来的 就是当前i的border长度可以累加到nex[i]的次数答案中 所以我们先求出字符串的nex数组(border),然后倒推答案(sum[nex[i]]+=sum[i]) 最后输原创 2017-03-14 19:24:30 · 474 阅读 · 0 评论 -
Border——BZOJ1355 [Baltic2009]Radio Transmission
http://www.lydsy.com/JudgeOnline/problem.php?id=1355 这个题一开始我样例解释根本看不懂,其实这个解释是错的(也没必要看) 我来重新解释一下这个样例吧 8 cabcabca 这个串是cabcabcab的子串对吧,那么就是cab不断自我连接得到,答案是3 首先我们来看一下,cabcabca这个串的最大border(除了自己)是5(就是cab原创 2017-03-14 15:52:15 · 221 阅读 · 0 评论 -
KMP——CODEVS1204 寻找子串位置
http://codevs.cn/problem/1204/ 裸的Kmp吧 (Pascal的可以用pos水过我就不说了) 具体见我前一篇说Kmp的文章,这里不再展开谢谢#include<bits/stdc++.h>using namespace std;int nex[1000001],l1,l2;char a[1000001],b[1000001];int main(){原创 2017-03-14 15:33:33 · 344 阅读 · 0 评论 -
字符串hash——Codeforces533F Encoding
题面:cf533f 简要题意:有A串和B串,两个串被判为相似的条件是满足在多个二元组 (x, y)表示将串中的所有x换成y,y换成x(x,y代表某个字母)之后,两个串相同。问有多少A的子串与B相似一开始想到KMP,但是KMP的话时间复杂度显然不对,那么就想到hash 我们把A串中每一个字母在A串中的位置下标做hash,举个例子,某串形如:abaacba 那么对于字母a,我们把a出现的位置下标的原创 2017-10-18 20:59:49 · 536 阅读 · 0 评论