自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Snowzhao的博客

study and improve

  • 博客(56)
  • 资源 (1)
  • 收藏
  • 关注

原创 AutoHotKey简单入门

为任意整数键. 这会将所有更高的整数键的索引向上移动插入值的数量, 即使是空缺的也一样(例如, 假设只有键 1 和 100 存在, 当插入一个值到第 50 个键的位置时, 将导致原来位于 100 的键的索引变成 101).之间的一系列的编号/整数或字符串键. 它给出的值将是被删除的键的数量, 如果你的键之间有间隙, 这是有用的(例如你指定键从 1 到 4, 但是键 2 不存在, 这将设置。这将删除最高的整数键, 并返回这个键对应的值. 而且这种形式不会影响其他键的索引顺序(因为没有比它更高的序列了).

2023-05-03 23:12:09 2968

原创 图说设计模式-结构型设计模式笔记

结构型模式适配器模式模式定义适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。模式结构适配器模式包含以下角色:Target:目标抽象类Adapter:适配器类Adaptee:适配者类Client:客户类适配器模式可分为对象适配器和类适配器。示例代码#include <iostream>#include <memory>class Tar

2022-03-29 11:11:56 1508 1

原创 图说设计模式-创建型设计模式笔记

创建型模式简单工厂模式模式定义简单工厂模式(Simple Factory Pattern),又称为静态工厂方法(Static Factory Method)模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模式结构简单工厂模式包含以下角色:Factory: 负责实现创建所有实例的内部逻辑。Product: 所创建的所有对象的父类,负责描述所有实例所共有的公共接口。ConcreteProduct:

2021-11-30 13:54:25 868 1

原创 CMake的简单使用

本文为我读《CMakeCookBook》时的笔记。将单个源文件编译成可执行文件cmake_minimum_required(VERSION 3.10 FATAL_ERROR) # 声明版本project(p1 LANGUAGES CXX) #声明项目名称和支持的编程语言,CXX代表C++add_executable(hello hello-world.cpp) # 生成可执行文件hello,这个可执行文件是通过链接源文件生成的CMake中,C++是默认的编程语言。不过,还是建议使用 LA.

2021-09-11 15:18:55 650

原创 程序员的自我修养阅读笔记

编译和链接将编译和链接合并到一起的过程称为构建(Build)。从源文件生成最终可执行目标文件共有4个步骤:预处理(Prepressing)编译(Compilation)汇编(Assembly)链接(Linking)预处理命令行指令:gcc -E hello.c -o hello.i预处理实际上使用的是cpp程序:cpp hello.c > hello.i预编译过程主要处理那些源代码文件中的以#开始的预编译指令。处理规则如下:将所有的#define删除,并且展开所有的

2021-08-05 18:49:04 442 1

原创 APUE阅读笔记

UNIX基础知识读后感:这一章是Unix的简介,作者用简练的语言总结了Unix的基础知识,感觉写的很清晰。UNIX体系结构从严格意义上说,可将操作系统定义为一种软件,它控制计算机硬件资源,提供程序运行环境。我们通常将这种软件称为内核。内核的结构被称为系统调用。广义上说,操作系统包括了内核和一些其他软件(系统实用程序(system utility)、应用程序、shell以及公用函数库等)。登录系统在/etc/passwd文件中存储了登录项,登录项由7个以冒号分隔的字段组成:登录名加密

2021-06-01 09:03:50 260

原创 跟我一起写Makefile学习笔记

Makefile介绍Makefile的规则target ... : prerequisites ... command ... ...target: 可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。prerequisites: 生成该target所依赖的文件和/或target。command: 该target要执行的命令(任意的shell命令)。prerequisites中如果有一个以上的文件比target文件要新的

2021-04-20 09:32:27 250

原创 C++Primer阅读笔记

文章目录算术类型基本内置类型变量const限定符类型别名autodecltype字符串、向量和数组Stringforvectorbegin和end运算符note数组字符数组auto和delctypebegin和end使用数组初始化vector对象使用范围for语句处理多维数组类型别名简化多维数组的指针位运算sizeof表达式运算符优先级类型转换隐式转换算术转换显式转换语句异常函数自动对象可变形参尾置返回类型使用decltype重载与作用域默认实参声明constexpr函数NDEBUG预处理变量实参类型转换函

2021-03-29 14:32:06 1235

原创 CSAPP阅读笔记

????代表重要知识点???? 代表摘录????代表大段摘录✏️代表练习????代表公式????代表自己的想法计算机系统漫游???? 系统中所有的信息都是由一串比特表示的。区分不同数据对象的唯一方法是我们读到这些数据对象时的上下文。???? 预处理器、编译器、汇编器和连接器一起构成了编译系统???? 系统的硬件组成总线总线是一组电子管道。总线携带信息字节并负责在各个部件间传递。通常总线被设计成传送定长的字节块,也就是字(wordwordword)。现在的大多数机器字长要

2021-03-26 11:48:38 880

原创 Linux和Shell Script入门笔记

基本概念Linux系统的核心是内核。内核控制着计算机系统上的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。内核主要负责以下四种功能:系统内存管理虚拟内存、交换空间软件程序管理进程硬件设备管理Linux将硬件设备当成文件:字符型设备文件、块设备文件、网络设备文件文件系统管理虚拟文件系统链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:符号链接符号链接就是一个实实在在的文件,它指向存放在虚拟目录结

2021-03-26 11:36:36 380

原创 汇编知识点总结

寻址方式与数据有关的寻址方式立即寻址:MOV AX ,3069H寄存器寻址:MOV AX, BX直接寻址:MOV AX, [2000H]寄存器间接寻址:MOV AX, [BX]寄存器相对寻址:MOV AX, COUNT[SI]基址变址寻址:MOV AX, [BP][DI]相对基址变址寻址:MOV AX , MASK[BX][SI]立即数只能用于源操作数字段,不能用于目的操作数字段若使用BP寄存器来指定地址,则段寄存器为SS,而其他的寄存器默认的段寄存器为

2021-03-05 21:09:52 2059

原创 vim安装指南(for Ubuntu and Windows)(配置C/C++和Python开发环境)

Ubuntu安装vimplusGitHub链接:vimplus安装步骤git clone https://github.com/chxuan/vimplus.git ~/.vimplus# 如果很慢的话可以使用镜像 https://github.com.cnpmjs.org/chxuan/vimplus.gitcd ~/.vimplus./install.sh耐心等待下载完成就好,如果中途卡死了,可以Ctrl+C退出进程,然后重新输入./install.sh指令这个应

2021-01-26 15:51:07 669

原创 《计算机网络自顶向下》阅读笔记

文章目录缩写概念协议应用层协议`HTTP``SMTP``POP3``Telnet``FTP``DNS``BitTorrent``DHCP``SIP`、`RTP``NFS``SNMP``BGP``RIP`运输层协议`TCP``UDP`网络层协议`IP``ICMP``OSPF`链路层和物理层协议以太网`PPP``OpenFlow`时隙`ALOHA``CSMA``CSMA/CD``ARP`工具缩写ISP(Internet Service Provider,因特网服务提供商)包含公司ISP、大学ISP

2021-01-15 13:48:01 1119

原创 GreasyMonkey脚本学习笔记

Hello world// ==UserScript==// @name Pig // @namespace Violentmonkey Scripts// @match *://*/*// @grant none// @version 1.0// @author Snow Zhao// @description say Hello world!// ==/UserScript==alert("Hello world!");

2020-12-24 13:37:23 1982 2

原创 《MySQL必知必会》阅读笔记

约定h3:代表章h4:代表节????:代表概念✏️:代表SQL指令????:代表函数????:代表example了解SQL????数据库(database) :保存有组织的数据的容器(通常是一个文件或一组文件)????数据库软件:被称为DBMS(数据库管理系统)。数据库是通过DBMS创建和操纵的容器????表(table):某种特定类型数据的结构化清单关键点:存储在表中的数据是一种类型的数据或一个清单数据库中的每个表都有一个唯一的名字来标识自己不同的数据库中可以使用相同的表名

2020-12-15 16:12:21 627

原创 IPython的简单使用

IPython小技巧利用?获取用法利用??获取源代码,倘若不能成功获取源代码,说明查询的对象不是用Python实现的利用Tab补全尽管Python没有严格区分共有、私有属性,但是按照管理,前面带有下划线的表示私有属性和方法通配符匹配,用*符号来实现。如使用:str.*find*?来寻找一个名称中含有find的字符串方法快捷键快捷键动作Ctrl+a移动光标到该行的开始处Ctrl+e移动光标到该行的结尾处Ctrl+b光标回退一个字符Ct

2020-12-04 18:47:08 1546

原创 smtp发送QQ邮件

啊!经过不断地尝试,我终于学会使用smtp服务器发送邮件了(虽然这好像并不是一件难事????)准备工作在Windows下开启telnet服务,具体方法:百度经验(开启服务后最好重启一下电脑,如果之后的步骤除了问题,也许和没重启有关系)获取qq邮箱验证码,方法可参考我的另一篇博客的开始部分:用Python发邮件打开一个可以转base64编码的网站:站长工具最后打开cmd开始telnet在cmd黑窗口中输入以下指令telnet smtp.qq.com 25你将在窗口看到类似这样的响应2

2020-11-10 23:16:44 4817

原创 用Python写的简易PDF阅读器

代码已上传到Github上,觉得做的不错的可以给我star ????软件也可以直接在项目的release中下载reader.zip文件,解压后目录中的main.exe文件就是主程序链接:pdf-reader软件介绍这是一个用Python开发的pdf阅读器,是软A项目的附加软件(虽然现在主程序几乎可以说还没有开始????,只完成了类和数据库模块的编写)软件功能阅读你可以通过此软件阅读pdf文档,但本程序并不提供任何的编辑功能,所有的页面都是以图片形式展示出来的。(目前本人也做不出来)目录pd

2020-10-02 16:57:57 3722

原创 Python网络编程学习笔记(《Python核心编程》第2章)

看完本篇博客,你将学会如何用Python制作一个简单的聊天器套接字(socket)两种类型:基于文件的和面向网络的套接字家族:AF_UNIX、AF_NETLINK、AF_TIPC 和AF_INET套接字地址:主机-端口对有连接的套接字:使用传输控制协议(TCP),使用SOCK_STREAM作为套接字类型无连接的套接字:使用用户数据报协议(UDP),使用SOCK_DGRAM作为套接字类型Python中的网络编程socket()函数创建套接字的语法:socket(socket_family,

2020-09-19 19:40:44 283

原创 PyPDF2库基本操作

PDFPyPDF2模块的安装:pip install PyPDF2初次使用:import PyPDF2pdfObj = open("1.pdf", 'rb')pdfreader = PyPDF2.PdfFileReader(pdfObj)print(pdfreader.numPages) # 输出页数pageObj = pdfreader.getPage(40)print(pageObj.extractText()) # 输出该页文本解密PDF:# 判断是否加密

2020-09-05 17:02:06 733

原创 Javascript学习笔记(十二)——最佳实践

最佳实践可维护性可理解性直观性可适应性可拓展性可调试性注释命名变量类型透明因为Javascript中变量是松散类型的,所以要合适的表示变量数据类型避免将Javascript与HTML和CSS耦合过于紧密APIrequestAnimationFrame()function updateProgress(){ var div = document.getElementById("status"); div.style.width = (parseInt(div.s

2020-09-01 08:45:21 232

原创 Javascript学习笔记(十一)——高级技巧

高级技巧高级函数安全的类型检测alert(Object.prototype.toString.call(value))惰性载入函数避免对浏览器支持能力的多次判断函数绑定let handler = { message: "Event handled", handleClick: function (event) { alert(this.message); }}let btn = document.getElementsByTagName("inpu

2020-09-01 08:43:50 601

原创 Javascript学习笔记(十)——Ajax与Comet

Ajax与CometAjax技术的核心是XMLHttpRequest对象(简称XHR)XMLHttpRequest对象新建XMLHttpRequest对象let xhr = new XMLHttpRequest();XHR的用法使用XHR 对象要调用open()方法,它接受3 个参数:要发送的请求的类型(“get”、"post"等)、请求的URL 和表示是否异步发送请求的布尔值xhr.open("get", "example.php", false);调用open()方法并不会真正发送请

2020-09-01 08:41:59 207

原创 Javascript学习笔记(九)——Javascript与XML

Javascript与XML浏览器对XML DOM的支持DOM2级核心创建一个新的、文档元素为<root>的XML文档: let xmldom = document.implementation.createDocument("", "root", null); alert(xmldom.documentElement.tagName); let child = xmldom.createElement("child"); xmldom.document

2020-09-01 08:40:10 359

原创 Javascript学习笔记(八)——HTML5脚本编程

HTML5脚本编程跨文档消息传递简称XDM。核心是postMessage()方法,接收两个参数:一条消息和一个表示消息接收方来自哪个域的字符串let iframeWindow = document.getElementById("myframe").contentWindow;iframeWindow.postMessage("A secret", "http://www.wrox.com");收到XDM消息时,会触发window对象的message事件,传递给onmessage处理程序的事件对

2020-09-01 08:37:49 256

原创 Javascript学习笔记(详)(七)——Canvas绘图

使用Canvas绘图基本用法<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>canvas</title></head><body><canvas id="drawing" width="200" height="200">A drawing of something.</canv

2020-08-31 08:43:57 458

原创 用python发邮件

QQ邮箱获取授权码发送文本内容import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.header import Header# 信息smtp_server = 'smtp.qq.com' # qq邮箱这里无需更改,其他非QQ邮箱的可以自行百度或googlefrom_address = '1550223143@qq.com'

2020-08-07 09:12:37 459

原创 搞懂gcd

gcd的概念gcd是指最大公约数,如gcd(6, 4)就是指6和4的最大公约数,结果显然是2。辗转相除法辗转相除法:两个整数的最大公约数等于其中较小的那个数和两数相除余数的最大公约数,即gcd(a,b)=gcd(b,a%b)(a>b且a%b≠0)gcd(a, b) = gcd(b, a \% b)\qquad (a > b且a \% b \neq 0)gcd(a,b)=gcd(b,a%b)(a>b且a%b​=0)证明:不妨设d=gcd(a,b)d = gcd(a, b)d=gc

2020-08-03 22:03:36 670

原创 Javascript学习笔记(详)(六)——表单

表单脚本表单的基础知识在javascript中,表单对应的是HTMLFormElement类型,继承自HTMLELement类型。独特的属性与方法:acceptCharset:服务器能够处理的字符集;等价于HTML 中的accept-charset 特性。action:接受请求的URL;等价于HTML 中的action 特性。elements:表单中所有控件的集合(HTMLCollection)。enctype:请求的编码类型;等价于HTML 中的enctype 特性。length:表单中控

2020-08-03 01:10:09 451

原创 Javascript学习笔记(详)(五)——DOM拓展与事件

DOM扩展选择符API核心方法:querySelector()和querySelectorAll()querySelector()方法:接收一个CSS选择符,返回与该模式匹配的第一个元素//取得body元素var body = document.querySelector("body");//取得ID为"myDiv"的元素var myDiv = document.querySelector("#myDiv");//取得类为"selected"的第一个元素var selected

2020-08-03 01:04:41 235

原创 Javascript学习笔记(详)(四)——DOM

DOMNode类型javascript中所有节点类型都继承自Node类型每个节点都有一个nodeType属性,表明节点类型:Node.ELEMENT_NODE(1);Node.ATTRIBUTE_NODE(2);Node.TEXT_NODE(3);Node.CDATA_SECTION_NODE(4);Node.ENTITY_REFERENCE_NODE(5);Node.ENTITY_NODE(6);Node.PROCESSING_INSTRUCTION_NODE(7);Nod

2020-08-03 00:57:05 328

原创 基础的图论算法——拓扑排序,Dijkstra算法,Prim算法,Floyd算法

拓扑排序Q:不知道你是否也曾苦恼于生物里的求食物链数目的题目。如果现在任意给你一个食物网,你能用程序来求出这个食物网中食物链的数量吗?A:你初次看到这个题目时,也许会不知从何下手。但如果你之前对拓扑排序有所了解的话,你会发现这个题目其实很好解决。数一条食物链,往往从生产者入手,即那些只能被吃的生物,给这些生产者们每人一个初始权重1,给那些能够食用这些生产者的动物,送去他们能食用的所有植物,每食用一种,就在他们的初始权重0的基础上加上这种植物的权重。把生产者们从食物链中去掉,你会发现食物链中又多了一批只能

2020-08-03 00:53:01 546

原创 基础的字符串算法——KMP,Hash,Manacher

KMPKMP是一种高效的字符串匹配算法你仔细观察的话,不难发现,KMP算法选择了一个相当巧妙的位置进行了移动。而KMP算法的核心就是寻找这个巧妙的位置,我们把这个位置存储在一个数组里,一般把这个数组命名为next数组,寓意为匹配失败后,待匹配的字符串应该移动到的下一个位置。倘若遮住原来匹配失败的字母A和C和他们右边的所有内容,只告诉你匹配失败了,让你寻找下一个可能匹配成功的位置,那么你肯定会做出和KMP算法一样的移动方式,即找到’DCBD’的后缀中和’BDCBD’的前缀中相同部分最多的那个位置。而

2020-08-03 00:51:19 356

原创 郊区春游(NC16122)状压dp

链接**[Click here to see the original question](### 链接Click here to see the original question题目描述今天春天铁子的班上组织了一场春游,在铁子的城市里有n个郊区和m条无向道路,第i条道路连接郊区Ai和Bi,路费是Ci。经过铁子和顺溜的提议,他们决定去其中的R个郊区玩耍(不考虑玩耍的顺序),但是由于他们的班费紧张,所以需要找到一条旅游路线使得他们的花费最少,假设他们制定的旅游路线为V1, V2 ,V3 … VR,那

2020-07-30 19:15:55 205

原创 锁(NC14732)状压dp

链接Click here to see the original question题目描述106号房间共有n名居民, 他们每人有一个重要度。房间的门上可以装若干把锁。假设共有k把锁,命名为1到k。每把锁有一种对应的钥匙,也用1到k表示。钥匙可以复制并发给任意多个居民。每个106房间的居民持有若干钥匙,也就是1到k的一个子集。如果几名居民的钥匙的并集是1到k,即他们拥有全部锁的对应钥匙,他们都在场时就能打开房门。新的陆战协定规定,一组居民都在场时能打开房门当且仅当他们的重要度加起来至少为m。问至少需要给

2020-07-30 19:12:45 542 1

原创 好朋友(NC19367)数位

链接Click here to see the original question题目描述BLUESKY007有很多关系很好的朋友,他们无一例外,名字均由数字组成(首字符不为0)且含有"007"(例如“10007”,“10707”就是她的好朋友,而“97037”,“70709”不是),即对于字符串s存在i,j,k(i< j< k)满足sisjsk‾=007‾\overline{s_is_js_k} = \overline{007}si​sj​sk​​=007虽然BLUESKY007眼力极

2020-07-30 19:09:25 241

原创 黑白树(NC13249)树状dp入门

链接Click here to see the original question题目描述一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1。树上每个节点i对应一个值k[i]。每个点都有一个颜色,初始的时候所有点都是白色的。你需要通过一系列操作使得最终每个点变成黑色。每次操作需要选择一个节点i,i必须是白色的,然后i到根的链上(包括节点i与根)所有与节点i距离小于k[i]的点都会变黑,已经是黑的点保持为黑。问最少使用几次操作能把整棵树变黑。输入第一行一个整数n (1 ≤ n ≤ 10^

2020-07-30 19:00:23 268

原创 方格取数(HDU1565)状压dp入门

有详细的注释#include <bits/stdc++.h>using namespace std;typedef long long int ll;int n, choices[100009], rowsum[100009], totalsum[100009], board[30][30], choicenum;void dfs(int row, int cur_col, int choice, int sum) { //choice用二进制的形式来记录,比如说4*4的棋盘

2020-07-28 20:41:28 139

原创 明七暗七(NC17867)数位dp

代码中有详细解释,cnt要使用long long int(害我找了好久)????#include <bits/stdc++.h>using namespace std;typedef long long int ll;ll m, n, cntn, cntx, dp[20][10][2];int bit[20];ll DFS(int pos, int remain, bool isMax, bool hasSeven) { //pos:位数, remain:上一位残留下来的余

2020-07-28 09:53:48 1412

原创 不要62(HDU 2089) 数位dp入门

代码中有详细的注释#include <bits/stdc++.h>using namespace std;int n, m, bit[11], dp[11][2];int DFS(int pos, bool isSix, bool isMax) { //pos表示当前遍历的位数,isSix表示上一位是否为6,isMax表示上一位的值是否为相应的最大可能值 if(pos == 0) return 1; //已经把所有的位数都遍历完毕,确定了一种可行方案

2020-07-28 00:27:02 147 2

docx库操作.md

这是对python中docx库详解的markdown文件,里面包括了如何下载安装docx库,以及对文档指令的详细介绍

2020-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除