kmp
cyl纤云弄巧
To Be
展开
-
HDU 2752 kmp next的应用
kmp next的应用题意: 给出一个字符串,这个字符串有很多前缀额和后缀,现在问有多少前缀与后缀相同,输出其长度即可。思路: 这道题利用到了next数组的含义:Next[i] 在子串0~i-1长度为i的子串中最长的前缀与后缀相同的长度。那么通过Next[len-1] 找到一个最长的,然后在最长的子串中接着找出次长的,以此类推。#include <iostream>#include <原创 2017-08-21 10:08:19 · 332 阅读 · 0 评论 -
POJ 3167
POJ 3167题意: 原串长度为n,匹配串长度为m,输出匹配串在原串中出现几次,并且输出其出现的位置。思路: 利用kmp的思想,求出Next数组,求的方法是对于数字的排列存在规律,因为两个数列不同只能比较相对大小,其体现在当前数字之前的比其小的个数和与之相等的个数,预处理其存在的个数。 as[i][j]as[i][j] : 在a[i]a[i] 位置之前(包括本身)k数字存在的个数原创 2017-12-05 22:31:46 · 424 阅读 · 0 评论