KMP
蓝鲸
这个作者很懒,什么都没留下…
展开
-
《算法竞赛进阶指南》匹配统计
匹配统计阿轩在纸上写了两个字符串,分别记为A和B。利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串A从任意位置开始的后缀子串”与“字符串B”匹配的长度。不过阿轩是一个勤学好问的同学,他向你提出了Q个问题:在每个问题中,他给定你一个整数x,请你告诉他有多少个位置,满足“字符串A从该位置开始的后缀子串”与B匹配的长度恰好为x。例如:A=aabcde,B=ab,则A有aabcde、abcde、bcde、cde、de、e这6个后缀子串,它们与B=ab的匹配长度分别是1、2、0、0、0、0。因原创 2020-09-13 22:05:08 · 278 阅读 · 0 评论 -
《算法竞赛进阶指南》奶牛矩阵
奶牛矩阵每天早上,农夫约翰的奶牛们被挤奶的时候,都会站成一个R行C列的方阵。现在在每个奶牛的身上标注表示其品种的大写字母,则所有奶牛共同构成了一个R行C列的字符矩阵。现在给定由所有奶牛构成的矩阵,求它的最小覆盖子矩阵的面积是多少。如果一个子矩阵无限复制扩张之后得到的矩阵能包含原来的矩阵,则称该子矩阵为覆盖子矩阵。输入格式第1行:输入两个用空格隔开的整数,R和C。第2…R+1行:描绘由奶牛构成的R行C列的矩阵,每行C个字符,字符之间没有空格。输出格式输出最小覆盖子矩阵的面积。(每个字符的面积原创 2020-09-12 11:24:38 · 364 阅读 · 0 评论 -
《算法竞赛进阶指南》周期
周期一个字符串的前缀是从第一个字符开始的连续若干个字符,例如”abaab”共有5个前缀,分别是a, ab, aba, abaa, abaab。我们希望知道一个N位字符串S的前缀是否具有循环节。换言之,对于每一个从头开始的长度为 i (i>1)的前缀,是否由重复出现的子串A组成,即 AAA…A (A重复出现K次,K>1)。如果存在,请找出最短的循环节对应的K值(也就是这个前缀串的所有可能重复节中,最大的K值)。输入格式输入包括多组测试数据,每组测试数据包括两行。第一行输入字符串S的长原创 2020-07-29 23:26:23 · 236 阅读 · 0 评论