![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
KMP算法
H煊
缓一会儿。。。
展开
-
ACM-ICPC Asia Regional Changchun 1008 Sequence I(KMP)
Sequence I 题意:已知序列A和序列B以及p,问有多少个位置q,使得b1,b2,…,bm与恰好匹配。 KMP算法稍作修改即可,next数组部分是不需要修改的,只需要改一下匹配过程,当序列A中的a[i]等于序列B中的b[j]时,将原先的i++改为i+=p即可。 代码: #include using namespace std; const in原创 2017-09-14 21:35:26 · 215 阅读 · 0 评论 -
2015 ACM-ICPC Asia Regional Shenyang Bazinga(KMP+剪枝)
Bazinga 题意:找到最大的i(1≤i≤n),存在一个整数j(1≤jj不是si的子串,若不存在,输出“-1”。 首先想到直接暴力枚举+KMP,时间复杂度O(50*500*500*(500+500)),显然超时。接下来考虑适当剪枝,可以考虑相邻的字符串编号小的串是不是编号大的串的子串,若是显然这个字符串后续就无需比较了,因为只要包含编号大的串的串,必定能够包含这个编号小的串。原创 2017-09-14 22:03:00 · 208 阅读 · 0 评论 -
2017 计蒜客初赛 阿里天池的新任务(KMP算法)
阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次。 首先,定义一个序列 ww: \displaystyle w_{i} = \begin{cases}b, & i = 0\\(w_{i-1} + a) \mod n, & i > 0\end{cases}wi={b原创 2017-07-12 10:41:07 · 228 阅读 · 0 评论