题目链接:https://vjudge.net/problem/HDU-3746 题意:给定一个字符串,问最少在两端添加多少元素使得整个字符串是呈周期性的。 思路: 应用到kmp中nex数组的性质,数组的最小循环节是L=len-nex[len],证明见http://www.cnblogs.com/w ...
分类:
编程语言 时间:
2019-11-03 18:27:00
阅读次数:
118
https://loj.ac/problem/10043 题目描述 给出两个字符串$A$和$B$,求$A$最多同时分成几个互不重叠的$B$。 思路 单字符串的匹配问题,可以考虑用$KMP$解决,属于模板题。 首先来介绍一下$KM ...
分类:
其他好文 时间:
2019-11-03 18:12:31
阅读次数:
83
https://loj.ac/problem/10048 题目描述 给出两个字符串$S$和$T$,要求不断从$S$中删除$T$,删除$T$后空缺为补齐,求删完后的字符串。 思路 单字符串匹配,显然我们可以用$KMP$。先跑一遍$KMP$的板子,预处理匹 ...
分类:
其他好文 时间:
2019-11-03 18:10:25
阅读次数:
91
题目链接:https://vjudge.net/problem/HDU-3336 题意:给定长为n(<=2e5)的字符串s,求s的每个前缀在s中出现的次数之和。 思路: 用dp[i]表示以s[i]为结尾的子串是s的某一种前缀的方案数,那么dp[i]=dp[nex[i]]+1,因为[nex[i]-(i ...
分类:
编程语言 时间:
2019-11-03 16:47:05
阅读次数:
61
题目链接:https://www.luogu.org/problem/P5410 题意:有两个字符串a,b,要求输出b与a的每一个后缀的最长公共前缀。输出: 第一行有lenb个数,为b的next数组(特别地,next1为lenb) 第二行有lena个数,即答案。 思路:扩展kmp模板,涉及字典树,后 ...
分类:
编程语言 时间:
2019-11-03 13:07:34
阅读次数:
92
题目链接:https://vjudge.net/problem/POJ-2406 题意:求出给定字符串的周期,和poj1961类似。 思路:直接利用next数组的定义即可,当没有周期时,周期即为1。 AC代码: #include<cstdio> #include<cstring> #include< ...
分类:
编程语言 时间:
2019-11-03 12:46:45
阅读次数:
75
题目链接:https://vjudge.net/problem/POJ-1961 题意:给定一个长为n的字符串(n<=1e6),对于下标i(2<=i<=n),如果子串s(1...i)是周期子串,输出其最大周期。 思路: 考察对kmp算法中next数组的定义掌握,如果(i+1)%(i-j)==0 && ...
分类:
编程语言 时间:
2019-11-03 12:29:30
阅读次数:
96
正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 正则表达式实例 一个字符串其实就是一个简单的正则表达式,例如 Hello World 正则表达式匹配 "Hello World" 字符串。 .(点号)也是一个正则 ...
分类:
编程语言 时间:
2019-11-03 01:02:27
阅读次数:
83
Description 求经过 $k$ 次将 $S$ 划分成两部分并交换使 $S$ 串变成 $T$ 串的方案数。 Solution 可以发现,每次可以将原串变为本质不同的其他串,也可以从其他串变为原串。无论多少次变换,归根结底都可以通过仅一次变换求出,所以先预处理出一个 $cnt$ 来表示原串通过一 ...
分类:
其他好文 时间:
2019-11-02 11:49:42
阅读次数:
79
用于字符串匹配,复杂度O(n+m) 步骤: 1.b串自我匹配出f数组,其中f[i]表示以b[i]为结尾的后缀与前缀的最大匹配长度-1 2.依次与a串中每个字符匹配。i、j分别作为a与b的指针。 若a[i]==b[j] 两个指针后移,再判断j是否到达b末 否则 若j非0 j = 上一个匹配位置f[j- ...
分类:
其他好文 时间:
2019-10-31 22:12:06
阅读次数:
106