题目链接: 题意:给一个模式串集合,序号1~n,有T个操作,或者是交换序号,或者是查询模式串集合中序号在L到R之 间的字符串有多少个和目标串公共前缀长度大于等于K。 ————————————————————————————————— 对模式串集合建字典树,则与目标串$LCP$大于等K的字符串,都在以 ...
分类:
其他好文 时间:
2019-12-06 21:12:48
阅读次数:
126
[TOC] kmp 问题:有两个字符串,S为主串(长度为n),T为模式串(长度为m),其中n m,如何判断T是否为S的子串 样例: abbaabbaaba abbaaba 朴素解法: S从头开始遍历,以每个字母为开头,再遍历T看是否匹配。 如何降低时间复杂度? 第一次匹配时,到了第七个字符发现不匹配 ...
分类:
其他好文 时间:
2019-12-01 20:52:27
阅读次数:
109
ANSI编码的中英文16叉模式串匹配自动机 1.构造模式串树 void insert(char* s, in* trie) { long u = 1, len = strlen(s);//每来一个模式串 for (long i = 0; i < len * 2; i++) { if (i % 2 = ...
分类:
其他好文 时间:
2019-11-29 14:26:27
阅读次数:
68
1. 给出模式串和文本串,文本串长度小于1e6,模式串长度之和小于1e6,求文本串中有多少模式串出现。 题目链接:https://www.luogu.org/problem/P3808 AC code: /* luoguP3808 (AC自动机模板题) 求文本串中有多少模式串出现 */ #inclu ...
分类:
其他好文 时间:
2019-11-17 12:18:16
阅读次数:
90
判断题 1.假设模式串是abababaab,则KMP模式匹配算法中的next[j] = 0 1 1 2 3 4 5 6 2。 T F 2.某二叉树的后序和中序遍历序列正好一样,则该二叉树中的任何结点一定都无左孩子。 T F 3.无向图中的一条边,在其邻接表存储结构中对应两个弧结点。 T F 4.在含 ...
分类:
编程语言 时间:
2019-11-16 23:49:02
阅读次数:
835
一、KMP算法介绍 KMP算法与前面的MP算法一脉相承,都是充分利用先前匹配的过程中已经得到的结果来避免频繁回溯。回顾一下MP算法,如下图的模式串偏移,当前模式字符串P的左端的p0与目标字符串T中tj位置对齐。从左向右逐个进行比较,发现 pi 处的字符a 与 tj+1 处字符b发生失配。同时也表明 ...
分类:
编程语言 时间:
2019-11-12 00:41:43
阅读次数:
68
函数原型 string.find(s, pattern [, init [, plain]] ) s: 源字符串 pattern: 待搜索模式串 init: 可选, 起始位置 plain: 我没用过 ① 子串匹配: 注意: lua 里面数组或者字符串的字符, 其下标索引是从 1 开始, 不是 0 s ...
分类:
其他好文 时间:
2019-11-06 15:09:28
阅读次数:
106
Luogu_P2536 [AHOI2005]病毒检测 trie树+dfs "题目链接" 这两个符号比较有意思 可以把所有的串都先建到trie树上 然后用病毒的模式串在上面搜索 处理这两个符号就可以通过搜索次序解决 主要可以看代码 ~~问的是非病毒,WA了~~ ~~一个符号可以不取,又WA了~~ 代码 ...
分类:
其他好文 时间:
2019-10-23 20:17:42
阅读次数:
78
问题引入 考虑KMP问题的升级版,即有多个模式串,单个文本串。问匹配次数。 问题解决 暴力KMP 考虑对于每一个模式串建一个$fail$然后对于每一个模式串都和文本串暴力跑。 AC自动机 前置知识 Trie树,bfs……没什么好说的。 算法实现 我们考虑将所有的模式串放到一颗$Trie$树,如果匹配 ...
分类:
其他好文 时间:
2019-10-13 18:34:33
阅读次数:
65
两个字符串: 模式串:ababcaba 文本串:ababcabcbababcabacaba KMP算法作用:快速在文本串中匹配到模式串 如果是穷举法的方式: 大家有发现,这样比效率很低的。 所以就需要使用一种高效率模式的算法:KMP算法。 大家有看到上面的穷举法,是一位一位的挪。那可以一次挪多位不就 ...
分类:
编程语言 时间:
2019-10-13 13:23:09
阅读次数:
100