概述 KMP(Knuth Morris Pratt)算法是一种用来解决字符串匹配问题的算法,时间复杂度为O(n+m),主要思想是当模式串与主串发生失配时,不必从头开始匹配,而是滑动到已经匹配的部分 next数组 在KMP算法中,next数组用来存储一段子串最大相等前后缀的长度加1,例如长度为i+1的 ...
分类:
编程语言 时间:
2018-12-16 17:10:11
阅读次数:
166
P4022 [CTSC2012]熟悉的文章 题目大意 $m$个文本,$n$个模式串 对于每个模式串: 求最大L使得该串能分解成不小于$L$的子串,且在文本中出现的长度不小于该串总长度的$90%$ 建广义后缀树 对于$L_1$,$L_2$两种情况,$L_1>L_2$,如果$L_1$符合,显然$L_2$ ...
分类:
其他好文 时间:
2018-12-15 11:43:00
阅读次数:
156
单模式匹配算法,也就是一个字符串和另一个字符串进行匹配。 1. BF 算法 BF 算法中的 BF 是 Brute Force 的缩写,中文叫作暴力匹配算法,也加朴素匹配算法。从名字可以看出,这种方法很暴力,效率也不高,但是简单、好懂。 在要匹配的两个字符串中,一个称之为 主串 ,一个称之为 模式串 ...
分类:
其他好文 时间:
2018-12-05 20:28:27
阅读次数:
228
本文半原创 参考资料: "其实就是照抄的什么参考啊" 我们知道KMP可以用来在线性复杂度内进行制胡窜匹配 今天教您一种新方法:用FFT进行字符串匹配 您可能觉得这很玄学,FFT不是做多项式卷积的吗,怎么还可以做制胡窜匹配 您先别着急,请接着听 我们设两个字符串 模式串$a$,长度为$m$,文本串$b ...
分类:
其他好文 时间:
2018-12-04 21:09:32
阅读次数:
256
1.USART_Init(参数1,参数2) 串口配置步骤 1.串口时钟使能,GPIO使能 2.串口复位 3.端口模式设置GPIO_Init() 4.串口参数初始化USART_Init() 5.开启中断并且初始化NVIC(如果要开启中断才进行这个步骤) NVIC_Init() USART_ITConf ...
分类:
其他好文 时间:
2018-12-04 14:43:23
阅读次数:
253
CF149E 题意 :给出一个长度为n的文本串和m个模式串,求有多少个模式串可以拆成两半,使得这两半按顺序匹配(n ...
分类:
其他好文 时间:
2018-12-03 00:46:07
阅读次数:
144
概述如下:‘.’代表任意字符,‘*’代表前一个字符0或多个,输入一个模式串,一个字符串,返回是否匹配 最初的思路:遍历字符串,遇上‘.’,跳过到下一位置,遇上‘*’则先统计字符串的重复个数count1,然后统计‘*’后的相同字符的重复个数count2,如果count1>=count2的情况下,是可以 ...
分类:
其他好文 时间:
2018-11-11 10:54:50
阅读次数:
166
<题目链接> 题目大意:给定一个只有小写字母组成的目标串和m个模式串(里面可能有大写字母),记目标串反过来后的串为S,让你从m个模式串中选出若干个组成S串(不区分大小写)。输出任意一种方案。 解题分析:将所有单词倒着建好Trie树后(字母忽略大小写),直接在Trie树上跑DFS,记录下所有符合条件的 ...
分类:
其他好文 时间:
2018-11-03 17:35:25
阅读次数:
87
传送门 分析 AC自动机板子题qwq 不过似乎可以哈希(因为所有模式串的长度相同,所以哈希乱搞就可以) 代码 ...
分类:
其他好文 时间:
2018-10-31 00:01:59
阅读次数:
256
描述 给若干个模式串,以及若干个句子,判断每个句子里是否包含模式串。 句子和模式串都由小写字母组成 输入第一行是整数n,表示有n个模式串 ( n <= 1000)接下来n行每行一个模式串。每个模式串长度不超过20接下来一行是整数m,表示有m个句子 (m <= 1000)接下来m行,每行一个句子,每个 ...
分类:
其他好文 时间:
2018-10-30 00:21:52
阅读次数:
294