随笔分类 - KMP & 扩展KMP & Manacher
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=70325#overview
摘要:题目大意:有一个长N的字符串,如果前缀Ni是一个完全循环的串(循环次数大于1),输出Ni和它循环了多少次。分析:输入next的应用,求出来next数组直接判断Ni是否是完全的循环就行了,也就是Ni % next[i] == 0下面代码=================================...
阅读全文
摘要:题目大意:给你一些串,问如果想让这个串里面的循环节至少循环两次,需要添加几个字符(只能在最前面或者最后面添加)。比如ababc 需要添加5个就是添加ababc。分析:其实字符串的长度len-next[len] = 最小循环节长度,为什么?其实也是需要对next的深刻了解,首先我们都知道next是求的...
阅读全文
摘要:分析:基础的练习...............=======================================================================================#include#includeconst int MAXN = 1e4+7;v...
阅读全文
摘要:题目大意:题目叙述很多,其实只看输入输出也能明白什么意思,给两个串W,T, 判断T串中包含几个串W。分析:还是基础的KMP应用.......................直接上代码。==========================================================...
阅读全文
摘要:刚才看了(连接)写的翻译,把kmp算法的工作过程讲的很不错,kmp算法的核心是next,next为什么要那么赋值?其实就是前缀和后缀的最大匹配值,用这个值在匹配失败的时候可以跳过一个不必要的匹配。移动的位数 = 已匹配的字符数 - 对应部分的匹配值(也就是前缀和后缀的最大相等值)。为什么要这么移动呢...
阅读全文
摘要:题意:给你一个a串和一个b串,问b串是否是a串的子串,如果是返回b在a中最早出现的位置,否则输出-1分析:应该是最简单的模板题了吧.....代码如下:===========================================================================...
阅读全文

浙公网安备 33010602011771号