算法
文章平均质量分 76
三月溪山两故人
这个作者很懒,什么都没留下…
展开
-
不同版本的KMP算法总结
其实这是两年前我自己写的一篇总结,最近复习算法又给翻出来了,顺便发到博客上来。从我个人的学经历来看,学习KMP算法最大的困难在于版本太多。如果你看完一个博客只是懵懂,想再看看另一个博客,那么就很有可能遇到另一个版本的KMP算法,会让你更加混乱,所以我觉得整理一下KMP算法的不同版本其实更加重要。不同版本KMP算法的主要流程其实都是相似的,其不同之处在于预处理数组的定义。第一种KMP算法的预处理数组叫做LPS数组(longest proper prefix which is also suffix),其原创 2020-07-14 16:10:13 · 855 阅读 · 1 评论 -
详解马拉车算法中的半径数组计算方法
最近有个朋友给我介绍tx的面经时提到了最长回文字串问题,这才知道原来还有时间复杂度为O(n)的解法——Manacher算法,于是去翻了翻博客,发现对于半径数组p的讲解都非常难懂,为了节约以后自己复习算法的时间,特地写一篇博客来好好理解这一部分的内容。在浏览本文前,请确保自己已了解O(n2)的算法,因为Manacher算法本质上是对于O(n2)算法的一种优化。先给出我学习这个算法时主要参考的博客:...原创 2020-04-16 18:25:25 · 263 阅读 · 1 评论 -
关于动态规划法解决0-1背包问题时遍历顺序的探讨
一、0-1背包的题目描述 有n种物品,每种只有1个。第i种物品的体积为Vi,重量为Wi。选一些物品装到一个容量为C的背包中,使得背包内物品在总体积不超过C的前提下重量尽可能大,问总重量的最大值为多少。二、基本思路与其实现 0-1背包是最基础也是最经典的背包问题,北邮C语言练习的红书上都有这个题。如果你上网搜索0-1背包的解法,你会发现它其实有四种基本解法,分别是...原创 2018-08-26 16:10:42 · 2573 阅读 · 0 评论 -
基于FFT的大整数类高精度乘法
刘汝佳的《算法竞赛入门经典》中给出过大整数类的代码,但其只实现了输入输出、加减法和比较的功能,并未实现乘法。本文在他的代码的基础上,采用FFT算法实现了高精度乘法运算。FFT算法讲解:https://blog.csdn.net/ripped/article/details/70241716https://www.cnblogs.com/DreamlessDreams/p/8697931.ht...原创 2019-10-03 15:31:01 · 803 阅读 · 0 评论