算法总结
MrZhangOac
这个作者很懒,什么都没留下…
展开
-
字符串系列5 后缀自动机
阅读目录:后缀自动机简介后缀自动机相关概念SAM 的 StatesSAM 的 Suffix LinksSAM 的 Transition Function线性时间构造后缀自动机情况一:最简单情况情况二:maxlen(v)+1=maxlen(x)情况三:maxlen(v) + 1 < maxlen(x)时间复杂度证明附录HiHo1445 C++ AC ...转载 2018-02-13 08:55:24 · 567 阅读 · 0 评论 -
字符串系列1 Rabin-Karp, 有限自动机, KMP, 扩展 KMP
阅读目录:算法导论的四种字符串匹配算法朴素字符串匹配算法Rabin-Karp算法利用有限自动机进行字符串匹配确定有限自动机简介利用有限自动机进行字符串匹配KMP算法其他字符串相关算法KMP 优化拓展 KMP 算法附录这篇博客总结了几种常见的字符串匹配的处理方法,并使用 python 实现,参考了算法导论以及其他博客。算法导论的四种字符串匹配原创 2018-01-29 17:38:55 · 931 阅读 · 1 评论 -
字符串系列2 Manacher 算法
原博主已经写得非常清楚了,这里我只是将原文转过来,原博文如下:Manacher算法总结Manacher算法介绍Manacher 算法是查找一个字符串的最长回文子串的线性算法。在介绍算法之前,首先介绍一下什么是回文串,所谓回文串,简单来说就是正着读和反着读都是一样的字符串,比如 abba,noon 等等,一个字符串的最长回文子串即为这个字符串的子串中,是回文串的最长的那个。 计算字符串转载 2018-02-07 21:05:32 · 302 阅读 · 0 评论 -
字符串系列N 后缀树和Boyer-Moore 算法和 AC 自动机
后缀树好理解,但是线性时间构造后缀树其实比较复杂,后缀树在竞赛或者实际应用中用得也比前几种算法少,因此这里只放一些写得比较好的博客,有时间再研究吧。后缀树系列一:概念以及实现原理( the Ukkonen algorithm) 后缀树系列二:线性时间内构建后缀树(包含代码实现) 后缀自动机与线性构造后缀树 维基百科:Suffix tree 后缀树 - 匠心十年 - 博客 算法系列之二...原创 2018-03-01 11:24:27 · 796 阅读 · 0 评论 -
字符串系列4 后缀数组
阅读目录:简介倍增法DC3最长前缀附录倍增法 C++ 实现( hiho 1403 )通过DC3算法 C++ 实现( hiho 1403 )通过简介后缀数组就是把一个文本串的所有后缀按字典序从小到大排放的数组。由于线性构造后缀树比较复杂,因此后缀数组和后缀自动机都是替代方案,也能完成大部分功能。那么这三个算法和之前介绍那么多算法有什么区别呢,之前介绍的算法...原创 2018-02-23 22:14:52 · 525 阅读 · 0 评论 -
约瑟夫问题
问题描述:n个人,编号0 ~ (n-1),从1开始报数,报到m的人退出,下一个人继续从0开始报数,求胜利者的编号。6-&amp;amp;gt;8-&amp;amp;gt;7-&amp;amp;gt;5-&amp;amp;gt;2-&amp;amp;gt;1-&amp;amp;gt;4-&amp;amp;gt;3假设总共有8个人,然后报30,我们来看一下过程0 1 2 3 4 5 6 7,原创 2018-11-03 15:52:44 · 1906 阅读 · 0 评论 -
字符串系列3 最长公共子串
这里总结了几种常见的解决最长公共子串问题的方法。方法1:暴力求解最简单的方法当然是暴力啦,遍历一个字符串的所有子串,然后查看其它字符串是否都含有这个子串,从所有字符串都含有的子串中选一个最大的即可,这适合对时间要求不太紧的情况。POJ 3080 AC代码:public static void main(String[] args) { Scanner in = new Scann...原创 2018-11-03 17:31:09 · 510 阅读 · 0 评论 -
字符串系列6 最长回文子串
Descripition:Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.Example 1:Input: “babad”Output: “bab”Note: “aba” is also a valid an...翻译 2018-11-03 22:32:33 · 334 阅读 · 0 评论