Border 和 周期 周期的定义: $0<p<|s|, s[i] = s[i+p], \forall i \in{1,2,...,∣s∣? p}$周期不能为0,也不能等于串长. Border: $0<r<|s|, pre(s,r) = suf(s,r)\(, 则pre(s,r)为s的一个borde ...
分类:
其他好文 时间:
2020-08-07 00:31:37
阅读次数:
96
题目描述 给你一个字符串 \(s1\),它是由某个字符串 \(s2\) 不断自我连接形成的。但是字符串 \(s2\) 是不确定的,现在只想知道它的最短长度是多少。 输入格式 第一行一个整数 \(L\),表示给出字符串的长度。 第二行给出字符串$s1$ 的一个子串,全由小写字母组成。 输出格式 仅一行 ...
分类:
其他好文 时间:
2020-08-07 00:31:25
阅读次数:
90
title: 前缀函数与KMP算法 date: 2020-08-05 tags: 算法 字符串 OI categories: 技术 因为大二的时候全程划水,导致我对KMP只听说过名字。老师似乎都没展开讲,我记得是有一节下课时说这个算拓展内容,可以自己回去研究,所以我印象中还蛮难的。 前段时间在廖雪峰 ...
分类:
编程语言 时间:
2020-08-06 09:21:03
阅读次数:
75
package newleetcode;/** * leetcode20.strStr匹配字符串 * 给定一个主串和一个匹配字符串 * 在主串中寻找匹配字符串并返回下标 */public class LeetCode28 { //KMP算法 //dp前一个括号代表匹配状态 private int[] ...
分类:
编程语言 时间:
2020-08-01 09:21:06
阅读次数:
94
void getnxt(char *s,int *next) { int k=-1; int j=0; pext[j]=-1; while(j<len) { if(k 1 || s[j]==s[k]) { k++; j++; pext[j]=k; } else { k=pext[k]; } } } ...
分类:
编程语言 时间:
2020-07-28 10:18:56
阅读次数:
78
字符串整理(Manachar,KMP,扩展KMP,ACAM,SA,SAM,最小表示法) 基础 字符集$\sum$:一个字符集是一个建立了全序关系的集合,即任意属于$\sum$的元素可以比较,字符集中的元素叫做字符 字符串:一个字符串$S$将n个字符顺次排列组成,$n$为$S$的长度,计作$|S|$, ...
分类:
其他好文 时间:
2020-07-26 01:32:53
阅读次数:
67
扩展KMP 舞蹈链 卢卡斯定理/扩展卢卡斯 莫比乌斯反演 线段树分裂 LCT manacher 回文自动机 点分治 ...
分类:
编程语言 时间:
2020-07-20 23:01:57
阅读次数:
117
[USACO15FEB]Censoring S「KMP算法」 题目描述 原题来自:USACO 2015 Feb. Silver 给出两个字符串$S$和$T$,每次从前往后找到$S$的一个子串$T$ 并将其删除,空缺位依次向前补齐,重复上述操作多次,直到$S$串中不含$T$串。输出最终的$S$串。 输 ...
分类:
编程语言 时间:
2020-07-20 13:09:46
阅读次数:
57
KMP算法 给定文本串A、模式串B,求模式串B在文本串A中出现的次数。 设文本串A的长度为n,模式串B的长度为m 暴力:二重循环+回溯 复杂度 O(n*m) KMP: 将复杂度优化到O(n+m) 本篇文章是我初学KMP算法所写,如果有错误欢迎指出 另外本文的KMP算法的实现方式较常规的实现效率似乎低 ...
分类:
编程语言 时间:
2020-07-20 10:19:41
阅读次数:
95