题目传送:POJ - 2752
思路:就是每次都去找当前串的最大相同前缀后缀,找到一个后,令该相同前缀后缀为当前串,再循环调用,注意因为kmp的next函数中的最大相同前缀后缀不包含自身,所以每次都要多输出原串自身长度
AC代码:
#include
#include
#include
using namespace std;
const int maxn = 1000...
分类:
其他好文 时间:
2015-04-24 10:40:47
阅读次数:
119
学习ac自动机需要先会kmp和trie:kmp | trie终于入门了,看了一天,现在整理一下。算法简介:AC自动机主要用于解决多模式串的匹配问题。如hdu2222:给定N(N next[id]==NULL) p->next[id]=new Trie(); p=p...
分类:
其他好文 时间:
2015-04-24 06:36:56
阅读次数:
166
AC自动机在trie树上实现KMP的一种数据结构,可以完成多模式串的匹配,核心要理解fail指针的含义,即让当前字符失配时跳转到具有最长公共前后缀的字符继续匹配,从根节点到当前节点(s)fail指针的节点(p)的路径字符串必定为从根节点到节点s的路径字符串的一个后缀,还有理解trie图,当字符串.....
分类:
其他好文 时间:
2015-04-23 23:08:44
阅读次数:
283
KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n),KMP匹配算法,可以证明它的时间复杂度为O(m+n).。...
分类:
编程语言 时间:
2015-04-23 09:35:03
阅读次数:
158
看目录就好了。不用看具体部分
网络流
二分图
最大匹配
最小点覆盖
最小边覆盖
最小路径覆盖
最大独立集
最大流
上下界最大流
最小割
全局最小割
费用流
上下界费用流
线性规划转费用流
最大权闭合图
RMQ优化建图
单纯形
字符串相关
hash
KMP
扩展KMP
Ma...
分类:
其他好文 时间:
2015-04-23 09:33:21
阅读次数:
437
题意:求模板串在文本串中出现的次数(位置无交叉)。只需在找到的时候把模板串指针归0即可。 1 #pragma comment(linker, "/STACK:10240000,10240000") 2 3 #include 4 #include 5 #include 6 #inc...
分类:
其他好文 时间:
2015-04-23 07:10:00
阅读次数:
160
题意:求最长的a的前缀同时满足是b的后缀,把a,b连在一起,kmp跑一下,迭代next直到长度小于等于a,b长度的最小值为止,即为答案。 1 #pragma comment(linker, "/STACK:10240000,10240000") 2 3 #include 4 #inclu...
分类:
其他好文 时间:
2015-04-23 07:09:18
阅读次数:
114
题意:求字符串s的所有前缀出现次数之和。http://www.cnblogs.com/jklongint/p/4446117.html思路:用kmp做,简单且效率高。以前缀结尾的位置分类,令dp[i]为以结尾位置在i的前缀数量,那么dp[i] = cnt(j)(j~i是前缀),而由kmp的next函...
分类:
编程语言 时间:
2015-04-23 07:08:52
阅读次数:
170
http://acm.hdu.edu.cn/showproblem.php?pid=1686OulipoTime Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s)...
分类:
其他好文 时间:
2015-04-23 01:51:15
阅读次数:
187
题目大意:
给你两个串S1和S2,求既是S1的前缀同时是S2的后缀的最长字符串及长度。
思路:
KMP算法中Next[j] == k的实质是当前字母不匹配时,模式串的前k项(S0~Sk-1)和位置j前
的k项(Sj-1-k~Sj-1)是相等的,这个k值是所有满足上面情况最大的。那么Next[len]的含义
就是模式串的最长的前缀和后缀相等的串长度。
利用Next[]的性质,先将串S2连接到S1后边。求S1的Next[]数组。那么,现在的Next[len]
就是S1的前缀和S2的后缀最长的长度,这是当这个长...
分类:
其他好文 时间:
2015-04-22 22:14:28
阅读次数:
116