<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[looeyWei的博客]]></title><description><![CDATA[on the way]]></description><link>https://blog.youkuaiyun.com/Mr_HCW</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Mr_HCW]]></copyright><item><title><![CDATA[SHA-1实现]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/115548261</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/115548261</guid><author>Mr_HCW</author><pubDate>Fri, 09 Apr 2021 14:11:05 +0800</pubDate><description><![CDATA[SHA-1可将任意长度(小于2的64次方)的明文散列成固定的160位。这里分成三部分来实现SHA-1是如何操作的

一、消息填充

对明文进行填充，得到固定512位（或512的倍数），因为SHA-1是分组操作的，每一组512位。这篇文章以一组512位为例，不考虑很长。

填充方法：

1. 在明文后面先填充一个字节 1000 0000

2. 然后一直填充0，注意后面要空出64位

3. 最后64位填充的是明文的长度

举个例子：假设明文是 “abc” 因为 ‘a’ = 97, ‘b’ = '98', c ]]></description><category></category></item><item><title><![CDATA[约瑟夫环问题]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/115030266</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/115030266</guid><author>Mr_HCW</author><pubDate>Sat, 20 Mar 2021 17:49:46 +0800</pubDate><description><![CDATA[约瑟夫问题大概是这样的：有n个人围成一圈，编号为 1， 2，....，n 。从第一个人开始报数（从1开始），报到 k 数字的人出圈，然后下一个人又从 1 开始报数，...，以此类推，直到最后只剩下一个人，问这个人的编号是多少。

模拟解决约瑟夫问题

大概思想：用双端队列模拟这个圈，每次将前k-1个人移至队列尾部，然后删除队列第一个元素，直到剩下一个人。


#include &lt;iostream&gt;
#include &lt;deque&gt;
using namespace std;

int.]]></description><category></category></item><item><title><![CDATA[Qt制作贪吃蛇(三)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/106043257</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/106043257</guid><author>Mr_HCW</author><pubDate>Sun, 10 May 2020 22:14:22 +0800</pubDate><description><![CDATA[这篇文章加上显示分数功能



由于要腾出一块地方显示分数，如图：



所以又定义了连个变量gameWidth 和 gameHeight表示游戏部分的宽和高，而不再是整个窗体都用来显示游戏界面

mainwindow.h

省略了一些代码，和本章内容无关的代码


#ifndef MAINWINDOW_H
#define MAINWINDOW_H

class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    void paintEve.]]></description><category></category></item><item><title><![CDATA[Qt制作贪吃蛇(二)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/106041926</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/106041926</guid><author>Mr_HCW</author><pubDate>Sun, 10 May 2020 21:04:54 +0800</pubDate><description><![CDATA[这篇文章内容是参考https://blog.youkuaiyun.com/sinan1995/article/details/81671311



这篇文章主要怎样产生食物，并可以被蛇迟到

mainwindow.h


#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include &lt;QMainWindow&gt;
#include "snake.h"
#include &lt;QPaintEvent&gt;
#include &lt;QPainter&gt;
#in.]]></description><category></category></item><item><title><![CDATA[Qt制作贪吃蛇(一)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/106039246</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/106039246</guid><author>Mr_HCW</author><pubDate>Sun, 10 May 2020 18:07:03 +0800</pubDate><description><![CDATA[这篇文章内容是参考https://blog.youkuaiyun.com/sinan1995/article/details/81671311



这篇主要是怎样实现创建一条蛇，并让它动起来

首先先创建项目，基类可以是mainWidget或者Widget，这里使用的是mainWidget

采用面向对象的方式，设计一个Snake类，制作这条蛇

Snake.h


#ifndef SNAKE_H
#define SNAKE_H

#include &lt;QObject&gt;
#include &lt;QLis.]]></description><category></category></item><item><title><![CDATA[cf #587 div3 E2]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/101145319</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/101145319</guid><author>Mr_HCW</author><pubDate>Sun, 22 Sep 2019 08:56:41 +0800</pubDate><description><![CDATA[题目链接
题目坑点 k&lt;=101810^{18}1018

题目大意：
有序列11212312341234512345612345671234567812345678912345678910…(无限长)
现在给你一个k，问第k个位置的数字(1~9)是多少

大概做法：
首先给序列分层：
第1层  1
第2层  12
…
第10层 12345678910
…
先判断k在哪一层，然后再把对应的层...]]></description><category></category></item><item><title><![CDATA[爬虫学习(二)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/100564898</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/100564898</guid><author>Mr_HCW</author><pubDate>Thu, 05 Sep 2019 20:38:30 +0800</pubDate><description><![CDATA[Scrapy使用和入门
1.创建一个scrapy项目

scrapy startproject myspider

创建了一个名为myspider的项目，生成了这么些东西

2.生成一个爬虫

cd myspider   # 进入项目文件夹里
scrapy genspider itcast itcast.cn


首先进入哪个爬虫项目(可能有多个)，然后生成了一个爬虫，爬虫名为itcast，爬取的...]]></description><category></category></item><item><title><![CDATA[爬虫学习(一)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/100177909</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/100177909</guid><author>Mr_HCW</author><pubDate>Sun, 01 Sep 2019 11:38:30 +0800</pubDate><description><![CDATA[先来了解一些预备知识
常见的请求方式

get请求
post请求

问题：get请求和post请求有什么区别
字符串复习
字符串符合两种类型

byte：二进制
互联网上数据的都是以二进制的方式传输的
str：unicode的呈现方式

两者是可以相互转换的，但必须编码解码方式一样，否则就会出错
str使用encode方法转化为bytes
bytes通过decode转化成str
a = '你好，爬...]]></description><category></category></item><item><title><![CDATA[pandas学习(一)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/100153822</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/100153822</guid><author>Mr_HCW</author><pubDate>Fri, 30 Aug 2019 11:56:25 +0800</pubDate><description><![CDATA[为什么要学pandas
numpy只能够帮助处理数值型数据
而pandas还可以处理其他数据，如字符串，时间序列
pandas的常用的数据类型
1.Series，一维，带标签数组
2.DataFrame，二维，Series容器
先来看看Series
什么是带标签？
我们先来创建一个Series数组
import pandas as pd

t = pd.Series([1,3,4,5])

pri...]]></description><category></category></item><item><title><![CDATA[numpy学习(一)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/100143497</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/100143497</guid><author>Mr_HCW</author><pubDate>Thu, 29 Aug 2019 19:52:18 +0800</pubDate><description><![CDATA[numpy可以帮助我们处理数值型的数据，注意，是数值型
用于处理数组(或者叫做矩阵)
创建数组(或矩阵)
可以先简单的通过列表创建数组
import numpy as np

t1 = np.array([1,2,3])
print(t1)
print(type(t1))

来看看输出了什么

打印出了一个像列表的数据，但是中间没有逗号~
还有其他一些简单的创建方式
import numpy as...]]></description><category></category></item><item><title><![CDATA[matplotlib学习(一)]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/100085616</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/100085616</guid><author>Mr_HCW</author><pubDate>Mon, 26 Aug 2019 20:49:17 +0800</pubDate><description><![CDATA[今天来学习学习matplotlib，它是一个绘图库，可以绘制折线图，直方图…，是根据matlab而来的。编不下去了
初步绘制
好了，正题开始
拿一个例子来讲把
比如这里有一组数据，是一天之内的气温变化，每两个小时测一次温度
温度变化 [15, 13, 14.5, 17, 20, 25, 26, 26, 27, 22, 18, 15]
现在我想绘制一个折线图，更直观的反映温度变化
那么我们开始把
直...]]></description><category></category></item><item><title><![CDATA[String]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/99550016</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/99550016</guid><author>Mr_HCW</author><pubDate>Wed, 14 Aug 2019 11:24:57 +0800</pubDate><description><![CDATA[取出String里的一部分
String s = "hello world!";
string str = s.substr(6,5);
cout&lt;&lt;str&lt;&lt;endl;
//str = "world"


]]></description><category></category></item><item><title><![CDATA[最长不下降子序列]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/93144201</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/93144201</guid><author>Mr_HCW</author><pubDate>Fri, 21 Jun 2019 00:35:48 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int maxn = 1000;
int a[maxn], dp[maxn];
int main()
{
	int n;
	cin &gt;&gt; n;
	for (int i = 1; i &lt;= n; i++) cin &gt;&...]]></description><category></category></item><item><title><![CDATA[最大连续子序列和]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/93143748</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/93143748</guid><author>Mr_HCW</author><pubDate>Fri, 21 Jun 2019 00:24:43 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int maxn = 1000;
int a[maxn], dp[maxn];
int main()
{
	int n;  
	cin &gt;&gt; n;
	for (int i = 0; i &lt; n; i++)
		cin &g...]]></description><category></category></item><item><title><![CDATA[数塔问题]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/93143549</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/93143549</guid><author>Mr_HCW</author><pubDate>Fri, 21 Jun 2019 00:20:12 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int maxn = 1000;
int f[maxn][maxn], dp[maxn][maxn];
int main()
{
	int n;  //n层
	cin &gt;&gt; n;
	for (int i = 1; i &lt;=...]]></description><category></category></item><item><title><![CDATA[区间覆盖]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/92798424</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/92798424</guid><author>Mr_HCW</author><pubDate>Tue, 18 Jun 2019 19:21:00 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
#include &lt;cmath&gt;
using namespace std;
const int maxn = 15000 + 10;
//const int maxn = 3e4 + 10;
struct node{
	double s,t;
}a[maxn];
int n,tot...]]></description><category></category></item><item><title><![CDATA[区间选点]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/92797915</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/92797915</guid><author>Mr_HCW</author><pubDate>Tue, 18 Jun 2019 18:36:57 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int maxm = 5000 + 10;
const int maxn = 3e4 + 10;
struct node{
	int s,t,num;
}a[maxm];
int n,m;
bool vis[maxn];
bool cmp(...]]></description><category></category></item><item><title><![CDATA[选择不相交区间]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/92797606</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/92797606</guid><author>Mr_HCW</author><pubDate>Tue, 18 Jun 2019 18:12:06 +0800</pubDate><description><![CDATA[#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
const int maxn = 1000 + 10;
struct node{
	int s,t;
}a[maxn];
int n;
bool cmp(node a,node b){
	return a.t&lt;b.t;
}
int solve()...]]></description><category></category></item><item><title><![CDATA[平衡术AVL]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/91177611</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/91177611</guid><author>Mr_HCW</author><pubDate>Fri, 07 Jun 2019 23:35:07 +0800</pubDate><description><![CDATA[还差删除功能
#include&lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;
struct node{
	int w, height; //w为结点权值
	node *lchild, *rchild;
};
node* newNode(int w){  //生成一个新节点
	node* Node = new node...]]></description><category></category></item><item><title><![CDATA[Hanoi塔问题]]></title><link>https://blog.youkuaiyun.com/Mr_HCW/article/details/89679610</link><guid>https://blog.youkuaiyun.com/Mr_HCW/article/details/89679610</guid><author>Mr_HCW</author><pubDate>Mon, 29 Apr 2019 17:35:11 +0800</pubDate><description><![CDATA[Hanoi塔问题

问题描述：
  假设有 333 个分别命名为 A、B、CA、B、CA、B、C 的塔座，在塔座 AAA 上插有 nnn 个直径大小各不相同，依小到大编号为 1、2,...,n1、2,...,n1、2,...,n 的圆盘。现要求将塔座 AAA 上的 nnn 个圆盘移至塔座 CCC 上，并仍按同样顺序叠排，圆盘移动时必须遵循下列规则：
 （1）每次只能移动一个圆盘;
 （2）圆盘可以...]]></description><category></category></item></channel></rss>