<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[EightSnow的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/EightSnow</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; EightSnow]]></copyright><item><title><![CDATA[不同版本的KMP算法总结]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/107340349</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/107340349</guid><author>EightSnow</author><pubDate>Tue, 14 Jul 2020 16:10:13 +0800</pubDate><description><![CDATA[其实这是两年前我自己写的一篇总结，最近复习算法又给翻出来了，顺便发到博客上来。
从我个人的学经历来看，学习KMP算法最大的困难在于版本太多。如果你看完一个博客只是懵懂，想再看看另一个博客，那么就很有可能遇到另一个版本的KMP算法，会让你更加混乱，所以我觉得整理一下KMP算法的不同版本其实更加重要。
不同版本KMP算法的主要流程其实都是相似的，其不同之处在于预处理数组的定义。
第一种KMP算法的预处理数组叫做LPS数组（longest proper prefix which is also suffix），其]]></description><category></category></item><item><title><![CDATA[详解马拉车算法中的半径数组计算方法]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/105560969</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/105560969</guid><author>EightSnow</author><pubDate>Thu, 16 Apr 2020 18:25:25 +0800</pubDate><description><![CDATA[最近有个朋友给我介绍tx的面经时提到了最长回文字串问题，这才知道原来还有时间复杂度为O(n)的解法——Manacher算法，于是去翻了翻博客，发现对于半径数组p的讲解都非常难懂，为了节约以后自己复习算法的时间，特地写一篇博客来好好理解这一部分的内容。在浏览本文前，请确保自己已了解O(n2)的算法，因为Manacher算法本质上是对于O(n2)算法的一种优化。
先给出我学习这个算法时主要参考的博客：...]]></description><category></category></item><item><title><![CDATA[django基本命令]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/104964721</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/104964721</guid><author>EightSnow</author><pubDate>Thu, 19 Mar 2020 12:36:19 +0800</pubDate><description><![CDATA[参考资料：https://www.imooc.com/learn/790
以下内容仅为学习笔记
1、启动服务器
python manage.py runserver 端口号(可选)
2、创建应用
python manage.py startapp 应用名
添加应用名到settings.py中的INSTALLED_APPS里
3、生成数据表
python manage.py makemigratio...]]></description><category></category></item><item><title><![CDATA[基于FFT的大整数类高精度乘法]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/101997099</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/101997099</guid><author>EightSnow</author><pubDate>Thu, 03 Oct 2019 15:31:01 +0800</pubDate><description><![CDATA[刘汝佳的《算法竞赛入门经典》中给出过大整数类的代码，但其只实现了输入输出、加减法和比较的功能，并未实现乘法。本文在他的代码的基础上，采用FFT算法实现了高精度乘法运算。
FFT算法讲解：
https://blog.youkuaiyun.com/ripped/article/details/70241716
https://www.cnblogs.com/DreamlessDreams/p/8697931.ht...]]></description><category></category></item><item><title><![CDATA[scrapy爬虫基本步骤总结]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/99693189</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/99693189</guid><author>EightSnow</author><pubDate>Sat, 17 Aug 2019 15:47:06 +0800</pubDate><description><![CDATA[参考资料：https://www.imooc.com/learn/1017
以下内容仅为学习笔记
一、新建项目
1、在cmd中输入：
scrapy startproject 项目名称
即可在当前目录下建立项目
2、用pycharm打开项目，可在settings.py中进行一些设置：
添加USER_AGENT
ROBOTSTXT_OBEY = False
DOWNLOAD_DELAY = 0.5（随...]]></description><category></category></item><item><title><![CDATA[QTcpSocket中waitFor系列函数在windows上可能随机失效的解决办法]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/90524215</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/90524215</guid><author>EightSnow</author><pubDate>Fri, 24 May 2019 22:47:24 +0800</pubDate><description><![CDATA[众所周知，QTcpSocket中的write和read函数是异步的，也就是非阻塞的。如果我们需要同步读写，就必须用QT为我们提供的waitForConnected、 waitForDisconnected、waitForBytesWritten、waitForReadyRead这四个函数。这看起来是一件很完美的事情，然而，QT文档中对waitFor系列函数有这样一句描述：

Note: This ...]]></description><category></category></item><item><title><![CDATA[checksum计算方法]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/90262110</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/90262110</guid><author>EightSnow</author><pubDate>Thu, 16 May 2019 13:51:58 +0800</pubDate><description><![CDATA[1、 先将需要计算checksum数据中的checksum设为0；
2、 计算checksum的数据按2byte划分开来，每2byte组成一个16bit的值，如果最后有单个byte的数据，补一个byte的0组成2byte；
3、 将所有的16bit值累加到一个32bit的值中；
4、 将32bit值的高16bit与低16bit相加到一个新的32bit值中，若新的32bit值大于0Xffff,
再将...]]></description><category></category></item><item><title><![CDATA[对于数据链路层滑动窗口协议中窗口大小的总结]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/90040813</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/90040813</guid><author>EightSnow</author><pubDate>Thu, 09 May 2019 16:52:28 +0800</pubDate><description><![CDATA[本文是学习《计算机网络》一书3.4节的一些总结，主要关注窗口大小限制的由来。若要浏览此文，请保证你已了解滑动窗口协议中的基本机制，在这里推荐一篇博客：https://blog.youkuaiyun.com/do_best_/article/details/79771841
3.4节中介绍了三种滑动窗口协议：1位滑动窗口协议、GBN协议、SR协议。1位滑动窗口协议本质上就是一种全双工的停等式协议，它的发送窗口和...]]></description><category></category></item><item><title><![CDATA[关于动态规划法解决0-1背包问题时遍历顺序的探讨]]></title><link>https://blog.youkuaiyun.com/EightSnow/article/details/82081589</link><guid>https://blog.youkuaiyun.com/EightSnow/article/details/82081589</guid><author>EightSnow</author><pubDate>Sun, 26 Aug 2018 16:10:42 +0800</pubDate><description><![CDATA[一、0-1背包的题目描述 
       有n种物品，每种只有1个。第i种物品的体积为Vi，重量为Wi。选一些物品装到一个容量为C的背包中，使得背包内物品在总体积不超过C的前提下重量尽可能大，问总重量的最大值为多少。

二、基本思路与其实现 
       0-1背包是最基础也是最经典的背包问题，北邮C语言练习的红书上都有这个题。如果你上网搜索0-1背包的解法，你会发现它其实有四种基本解法，分别是...]]></description><category></category></item></channel></rss>