题目链接:hdu_4787_GRE Words Revenge 题意: 总共有n个操作,2种操作。每行读入一个字符串。 1.如果字符串以+开头,此为单词(即模式串,不考虑重复) 2.如果字符串以?开头,此为文章(即文本串,查询在此之前的单词在文本串中出现的次数) 题解: 强制在线的AC自动机 贴个大 ...
分类:
其他好文 时间:
2016-09-02 06:35:08
阅读次数:
159
这个还是给个例子比较形象: 模式串:she,shr,her,say 目标串:yasherhs。出现了两个。 主要是fail指针求解。 ...
分类:
其他好文 时间:
2016-09-01 13:05:20
阅读次数:
120
传送门 题目大意 给定文本串$S$和若干模式串$\{T\}$, 对每个模式串$T$, 询问$T$是否为$S$的字串. Solution 裸的AC自动机, 也可以用后缀数组做. P.S. 这题数据很弱, 朴素的字符串匹配也能过. Pitfalls 模式串有重复的. 这样, 在建TRIE时就不能直接对每 ...
分类:
其他好文 时间:
2016-08-29 06:55:12
阅读次数:
166
曾写过迭代加深搜索的方法,现在使用在AC自动上跑最短路的方法 dp[i][j]表示状态为到节点i,模式串是否包含的状态为j的最短串的长度,则状态转移方程为: dp[nx][ny] = min(dp[x][y] + 1) , 其中nx为x后继结点,ny为从y转移过来的新状态,更新时加入队列 ...
分类:
其他好文 时间:
2016-08-28 20:45:26
阅读次数:
137
基本概念字串的定位操作通常称作模式匹配(其中子串成为模式串),是各种串处理系统中的重要操作之一.
在博文c语言实现字符串中给出了定位函数int string_index(h_string S, h_...
分类:
其他好文 时间:
2016-08-25 21:23:34
阅读次数:
176
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 36128 Accepted: 14584 Description The French author Georges Perec (1936–1982) once w ...
分类:
其他好文 时间:
2016-08-22 23:10:52
阅读次数:
188
标准KMP算法用于单一模式串的匹配,即在母串中寻求一个模式串的匹配,但是现在又存在这样的一个问题,如果同时给出多个模式串,要求找到这一系列模式串在母串存在的匹配个数,我们应该如何处理呢? 基于KMP算法,我们能够想到的一个朴素算法就是,枚举这多个模式串,然后进行多次KMP算法,这个过程中完成计数,假 ...
分类:
编程语言 时间:
2016-08-17 12:06:23
阅读次数:
128
KMP是一种字符串模式匹配算法,在目标串中查找模式串的方法。 朴素查找方法在遇到目标串字串具备大量重复前缀且和模式串大部分吻合,其时间复杂度就会衰退为o(N*M),严格来说是o((N-M+1)*M)。 因此,在数据量很大的时候我们需要一种线性复杂度的算法。 KMP的优势是通过next数组记录了目标串 ...
分类:
编程语言 时间:
2016-08-16 07:03:22
阅读次数:
196
KMP算法是一种改进的字符串匹配算法。KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是实现一个next()函数,函数本身包含了模式串的局部匹配信息。 next()函数的作用,就是在模式串中,找出最长的相同前缀,形成一张跳转表。 跳转表的用途是, ...
分类:
编程语言 时间:
2016-08-15 20:41:15
阅读次数:
167
【题目大意】 有一个匹配串和多个模式串,现在不断删去匹配串中的模式串,求出最后匹配串剩下的部分。 【思路】 众所周知,KMP的题往往对应着一道AC自动机quq。本题同BZOJ3942(KMP),这里改成AC自动机即可。 我一开始写了原始的AC自动机,写挂了。后来思考了一下,应当用Trie图,机智地1 ...
分类:
其他好文 时间:
2016-08-14 19:12:20
阅读次数:
209