随笔分类 -  数据结构--KMP

摘要:阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次。 首先,定义一个序列 ww: \displaystyle w_{i} = \begin{cases}b, & i = 0\\(w_{i-1} 阅读全文
posted @ 2017-05-20 22:05 勿忘初心0924 阅读(432) 评论(0) 推荐(0) 编辑
摘要:数据结构—KMP KMP算法用于解决两个字符串匹配的问题,但更多的时候用到的是next数组的含义,用到next数组的时候,大多是题目跟前后缀有关的 。 首先介绍KMP算法:(假定next数组已经学会,后边next数组会在介绍) 上图T为主链,P为模板链,要求P在T中是否出现,出现就返回位置。 朴素算 阅读全文
posted @ 2016-10-21 22:15 勿忘初心0924 阅读(4713) 评论(0) 推荐(2) 编辑
摘要:Power Strings Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 45008 Accepted: 18794 Description Given two strings a and b we define a*b to 阅读全文
posted @ 2016-10-19 19:00 勿忘初心0924 阅读(698) 评论(0) 推荐(0) 编辑
摘要:性质:如果len%(len-next[len-1])==0,则字符串中必存在最小循环节,且循环次数即为len/(len-next[len-1]); 证明:在前len个字符组成的字符串,存在最小循环节k,那么next[len-1]=len-k;(为什么呐?因为next数组的定义就是最大前后缀相同的子串 阅读全文
posted @ 2016-10-19 15:36 勿忘初心0924 阅读(1004) 评论(0) 推荐(0) 编辑
摘要:#include using namespace std; /*************************KMP模板****************************/ int f[101];//优化后的失配指针,记住这里f要比P多一位,因为P到m-1即可,但是f还要计算出m的失配指针 int f2[101];//f2用来保存KM指针,是为优化f的失配指针,f保存的是优化之后的失配... 阅读全文
posted @ 2016-10-18 22:04 勿忘初心0924 阅读(196) 评论(0) 推荐(0) 编辑
摘要:Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 36903 Accepted: 14898 Description The French author Georges Perec (1936–1982) once w 阅读全文
posted @ 2016-10-18 19:08 勿忘初心0924 阅读(246) 评论(0) 推荐(0) 编辑