自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 Ubuntu 安装QT 教程

什么是QTQt 是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。 -- 百度百科QT官网: https://www.q

2018-04-11 23:54:49 10063

原创 刷爆你朋友的邮箱! 使用Celery+Flask_mail进行定时邮件发送!

用celery结合flask进行定时任务

2018-03-30 00:00:23 3290 1

原创 基于关联规则的推荐-获取频繁项集

关联规则:关联规则是形如X->Y的蕴含表达式,其中X和Y是不相交的项集,即X∩Y=∅。关联规则的强度可以用它的支持度(support)和置信度(confidence)来度量支持度确定规则可以用于给定数据集的频繁程度(能够关联的次数)置信度确定Y在包含X的交易中出现的频繁程度(能够成功关联的次数) 支持度s和置信度c的形式定义如下: ||--> ·s(X->Y)=σ(X∪Y)/N

2017-12-27 17:23:21 3818

原创 写C语言代码时应该注意的一些事情

代码风格 - 写C语言代码时应该注意的一些事情缩进C语言不是依靠缩进进行语法分析的语言, 所以你大可以把你的代码压缩至仅有一行的形式, 但是这种代码的可阅读性是非常之低的, 所以在网络上看到的大部分示例代码都是格式很好易于阅读的, 其中比较重要的第一条就是缩进.缩进就是指人为的使用空格或者制表符使代码显得更加富有层次感, 一般的编辑器都会有自动缩进的功能, 根据每个人写代码的习惯的不同, 缩...

2019-10-04 23:49:59 680

原创 TLV, TTLV和编码规范的历史

众所周知, 在Protobuf中使用的编码方式是TLV, 也就是Tag-Length-Value, 但是在单纯的理解TLV是什么之前, 我认为需要去理解一下编码规范的历史, 因此写了这篇文章:一, 紧凑时代时代背景是刚刚有类似DOS的时候, 这个时候的显著特征就是各方面都很原始, 带宽很低, 因此在传输数据的时候要省之又省, 因此协议的编码规范以紧凑为特点.假设武大和华师要搞一个数据传输...

2019-10-03 00:04:16 1993 1

翻译 [译文]构建一个高性能现代网络爬虫

文章目录构建一个高性能现代网络爬虫什么是爬虫?Trandoshan:一个暗网爬虫什么是暗网?Trandoshan是如何设计的?怎么运行Trandoshan?如何使用Trandoshan?构建一个高性能现代网络爬虫PS:本文为Building a fast modern web crawker的中文译文。我一直对于爬虫具有很强烈的兴趣。我曾经使用过多种语言比如C++,Node.JS,Pytho...

2019-09-25 18:06:25 321

原创 使用Go语言解析多点触摸协议(MIT)TypeB由ADB调试产生的数据

前言我们在使用安卓手机的时候,已经很少有人会不借助触摸操作来操作手机了,也就是说对手机的触摸操作已经是我们使用手机时最常见的方式了。那么我们究竟是如何使用这种方式操控手机的呢?手机又是如何处理这些信息的呢?我们对于手机的触摸操作产生的信息,由Linux/Android多点触摸协议规定了如何进行组织和传输。而对于不同的手机设备,多点触摸协议又分为TypeA和TypeB两种,我的新手机(嘿嘿嘿开心...

2019-07-23 22:53:31 617

原创 《Concurrency in Go》阅读笔记 -- 第三章:Go语言并发组件

《Concurrency in Go》本章节从goroutine入手,讲解go语言的各种并发原语。在讲解完goroutine之后,对于传统的内存同步访问的并发原语:sync包中的Mutex,RWMutex,Cond,Once,WaitGroup,Pool等进行了分析。在此之后着重讲了go语言的另一大特色:channel。在最后,讲解了如何结合channel的语法:select语句。插一...

2019-06-14 03:29:30 948

原创 计算机网络实验:Lab4 使用ns2进行网络模拟

Lab 4: Using NS文章目录Lab 4: Using NS实验过程实验环境安装依赖开始实验编写tcl脚本运行tcl脚本解析trace数据,计算丢包率使用解析后的数据画图分析原理实验过程编写tcl脚本使用ns运行tcl脚本模拟网络,并利用nam生成动画解析上一步产生的trace数据,计算丢包率使用解析后的数据画图分析原理实验环境Linux Ubuntu 18.04 ...

2019-06-04 10:23:07 1677

原创 《Concurrency in Go》阅读笔记 -- 第二章:通信顺序进程

《Concurrency in Go》并发和并行的区别傻傻分不清?第二章从大众最常见的误区:并发和并行的区别,进行切入。从而牵扯出了对于并发代码的建模问题。从CSP入手讲解了go语言的好处和golang的并发哲学。Chapter 2:Modeling Your Code: Communicating Sequential Processes 对你的代码建模:通信顺序进程(CSP)1...

2019-05-22 19:18:56 625

原创 《Concurrency in Go》阅读笔记 -- 第一章:并发概述

《Concurrency in Go》Golang是一门静态的,强类型的,高并发的语言,而本书会聚焦在高并发的方面。第一章则从并发的基本内容讲起,大致包括几个方面:什么是并发?并发为什么困难?并发为什么值得研究?Chapter 1:An Introduction to Concurrency 并发概述1 从摩尔定律入手,讨论并发从何而来摩尔定律的内容是众所周知的,大概就...

2019-05-13 17:32:14 1019

原创 自平衡二叉查找树 -- AVL树 Adelson-Velsky-Landis Tree

平衡还是不平衡,这是一个问题

2019-05-08 18:24:37 671

原创 自由掌控全排列 -- 康托展开 Cantor expansion

全排列一直是一个让人联想到爆炸复杂度的东西如果一件事情牵扯到了全排列,大多数人脑中一定都是这样子的:高中学习的排列组合、排列数、组合数、数不清的阶乘、大学的组合数学等等一系列让人头疼的东西。如果你写过一点点OI相关的题目,或者在Leetcode等网站上刷过题,那么你一定使用过各种语言写过这样的题目:生成全排列。考点大概就是回溯。n的数有n!个全排列,生成的算法也有很多种:字典序法,插入法,邻...

2019-05-06 18:32:49 432

原创 对于Ubuntu18.04自己建立桌面应用

前言:和Flask一样,werkzeug中的Request类也是继承自BaseRequest基类和诸多Mixin混入类的。所以这一节就分析一下BaseRequest类:werkzeug.wrappers.BaseRequest参数:environ:WSGI Environment,在之前介绍过,由它来构建一个BaseRequest实例。是最重要的数据。populate_reque...

2018-12-02 18:52:48 386

原创 《Call Werkzeug》python werkzeug源码阅读 --预备知识:Cookie中的path和domain

源码中对应的场景:在werkzeug.wrappers.BaseRequest.delete_cookie()和werkzeug.wrappers.BaseRequest.set_cookie()方法的参数中出现了path和domain。在看到的时候不是很理解,只是大概知道是中文路径和域的意思,在查阅了相关资料之后做一个总结。path:path代表cookie所在的目录,默认为'/',也...

2018-12-02 00:41:20 280

原创 《Call Werkzeug》python werkzeug源码阅读 --WRAPPERS:导读

前言:WRAPPERS,即wrappers.py。包含了请求基类(BaseRequest)、响应基类(BaseResponse)和诸多的混入类(Mixin Classes)。wrappers.py是我选择进行源码解读的第一个入口,因为在写Web应用的过程中永远是离不开请求和响应的,那么首当其冲的就是要理解这两个至关重要又联系紧密的类了。在wrappers.py中,首先映入眼帘的是开发者们留下...

2018-11-28 21:13:26 494

原创 《Call Werkzeug》python werkzeug源码阅读 --预备知识:WSGI-Environment

WSGI-Environment是什么:WSGI-Environment,就是在代码中最常见的environ。environ字典被用来包含CGI(Common Gateway Interface,必须的网关接口)环境变量,除非是空字符串,否则所有以下将要介绍的变量都必须指定,但是在空字符串的情况下,他们会被忽略。除非特殊说明。简而言之:environ是一个字典,包含请求中所有的环境变量e...

2018-11-28 15:38:20 333

原创 《Call Werkzeug》python werkzeug源码阅读 --前言:什么是WSGI

前言:Werkzeugwerkzeug是使用Python语言编写的一个web后端工具包,提供了相当多的功能,并且是基于PEP 333:WSGI标准的,因此易于扩展。现如今许多的服务器端框架都是使用werkzeug的,比如flask。标准:WSGIWSGI是web server gateway interface的意思,即web服务器网关接口。是在PEP 333中提出用于规范服务端接口协议...

2018-11-21 23:56:51 571

原创 接口:从协议到抽象基类--Fluent Python第十一章读书心得

接口:从协议到抽象基类动物们:什么是鸭子类型,白鹅类型和猴子补丁鸭子类型和白鹅类型:-我眼中的-鸭子类型白鹅类型代表什么协议接口特征动态规范所谓鸭子类型,就是说我们需要的鸭子不一定是真正的鸭子。我们只关注我们要求的方面像鸭子。因此我们甚至可以说我们实现的类,它既是鸭子,也是麻雀,甚至还有可能是犀牛。而白鹅类型的提出则更加的具有规范性:我...

2018-11-21 22:38:33 256 1

原创 JZC&DSJ机试题目

木犀2018后端组机试题目PART2机试环境:电脑Linux(Ubuntu)python2.7或以上网络(用于传输而并非用于搜索题解)若发现利用网络搜索答案的,直接OUT时长及琐碎事项:本次机试时长为三个半小时期间允许上厕所之类的,包括买水也是可以的完成的题目统一提交到 [email protected]邮件题目:名字首字母大写,如ZMC或者DSJ邮件正文:...

2018-09-26 19:05:01 261

原创 FLASK THE ERROR TEST of: login_required() decorator with argument

Surprise mother f**ker!I write the code are same as internet! But I will get error like:AssertionError: View function mapping is overwriting an existing endpoint function: api.decoI try ...

2018-08-24 01:53:45 438

原创 login_required身份验证用装饰器for api [flask version]

涂api是一件莫名其妙就会有绊脚石的工作之前涂api,每一个api都要传token(身份验证令牌),然后调用confirm方法比较等等。 这次涂api总得进步不是。。于是就要把身份验证抽离。 按照常规的做法,这次我要写一个decorator,叫做login_required对了这次博客讲解的代码准备工作:嘤嘤嘤…本来想抄抄可可的代码的…后来发现是用的aiohttp这个Pyt...

2018-08-13 04:42:31 1392 2

原创 Linux终端上的github

欢迎各位来到木犀团队后端组星计划Github部分经过之前的学习,相信大家现在已经能够进入Linux系统了! 恭喜你们,现在有了一个比Windows好些的开发平台。 接下来我的这篇博客的目的是教你们使用开发者手中的利器–github.com什么是Github简单而非学术的说:就是大家放代码的地方。 你可以放自己的练习代码。 也可以和别人一起开发。 当然别人的代码是可以公开的,而...

2018-07-20 13:34:47 877

原创 Kotlin自学从入门到入土

hin难受的kotlin学习之路首先是如何安装命令行编译情况,这样我们就可以欢快的nano了 使用terminal,输入 curl -s https://get.sdkman.io | bash然后你就安装sdkman成功了,terminal上会说让你enjoy! 接下来就是安装kotlin:sdk install kotlin这个时候会有一个小问题,你的terminal说comm...

2018-07-01 16:16:28 785 1

原创 树点分治--求树的重心

引言在面对一个无根树的时候,我们往往无从下手,便随便挑选一个节点作为根节点进行操作。 这是很不负责的一种行为,因为它可能导致很高的复杂度。比如对于一条链,你选择了两头的结点。。你很有可能面对爆栈的风险(NOIP2016D1T2 = =亲身经历)那么,我们如果把一个很好看的树,比如一个满二叉树,把这个图看成无根图。 你会发现满二叉树的原本的根节点就是最好的选择:它恰巧在整个图的“中央”。...

2018-05-19 15:41:43 1064

原创 C语言中的常用库宏--持续更新

c语言中的宏/持续更新limits.h 名字 值 说明 CHAR_BIT 8 定义了一个字节中的比特数 SCHAR_MIN -127 定义最小值签署的字符 SCHAR_MAX 127 定义最大值签署的字符 UCHAR_MAX 255 定义unsigned char类型的最大值 CHAR_MIN ...

2018-05-11 20:47:25 804

原创 C语言常用库函数(持续更新

C语言常用库函数(持续更新由于Markdown语法问题(**之前的字符为斜体),请大家阅读时在斜体两侧自动补全两个星号本文以头文件分类:stdio.h – standard input output 函数原型说明 功能 返回值 void clearer(FILE *fp) 清除与文件指针fp有关的所有出错信息 无 int fclose(FILE *fp) 关闭fp所指的

2018-05-08 12:25:23 1495

原创 树上倍增 and 求LCA

前言:因为HUST校赛所以就要复习一下以前学过的知识,很多以前学过的知识全都忘光了,就很难受,所以慢慢的整理一下;正题:树上倍增以及lca问题什么是lca? 最近公共祖先(Lowest Common Ancestors) 至于定义是什么我不想废话,自行百度吧23333关于求lca,最暴力的办法就是dfs一遍然后找两个节点之间最高的点; 就像两个点一个个地往中间跳一样。一个,一个好慢啊所以我们

2018-04-22 22:39:57 378

原创 浅谈Go语言中的文件读入

/本篇blog是因为1-10.go而写的/听说我居然在文件写入的时候遇到了麻烦?对了,1-10.go的位置: https://github.com/ShiinaOrez/go_practice/blob/master/Go%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1%E8%AF%AD%E8%A8%80/1/1-10.goGo-文件写入的四种方式第一种:io.WriteS

2018-04-14 23:10:33 1014

原创 Dell 游匣7599 Ubuntu安装问题

Dell 游匣7559 Ubuntu安装问题

2018-03-29 21:38:12 1676 1

原创 线段树--动态区间查询

前言:现在手上有一个数组a[n],让我们来求一个区间的和 这简直太简单了! 我们写一个前缀和就可以在O(1)解决问题了!问题升级: 有两种操作,一个是修改其中某个变量的值, 另一个是求区间和这。。我只能O(n²)去做了==别怕, 线段树可以解决你的问题。线段树–Segment Tree既然是线段树,那么一定具有一个树的结构。 这个树和其他树不一样,线段树是用来维护我们手中的数组的

2017-12-13 17:13:23 403

原创 图论--最短路算法

图论图论是OI比赛中最重要的部分 。OI中除了送分题和数论题,基本都是图论的题目。最短路是图论中一个比较核心的问题。在一个图中(有向,无向//有环,无环//有负边权,无负边权)两个点,如何找到一个花费最小的路径呢?在高中我接触到了4个最短路算法:Floyd,Dijkstra,Bellman-Ford,SPFA 今天只打算讲除了Bellman-Ford之外的三个算法。 你都有SPFA了干嘛还要

2017-12-07 21:01:37 728

原创 并查集--Union_Find

并查集–并、查、集。并查集这个名字听上去是不是怪怪的?? 对的,应该是怪怪的才对! 其实是三个汉字拼凑而成的术语23333并–Union:并,指的是合并操作。 即将两个集合合并为一个集合。查–Find:查,指的是查询。 查询一个节点的所属集合。集:集,指的是集合。这样几个概念为什么能够拼凑在一起呢? 我们从并查集最经典的亲戚问题入手:如果你面对一个很大的调查人群,每个人都会告诉你

2017-12-06 16:55:12 275

原创 堆--堆排序--heap--heap_sort

堆-Heap(本文特指二叉堆)堆在算法界是一个非常常见的东西23333堆的优点在于它的复杂度,都控制到了O(log 2 n)的级别堆的定义:堆是一个完全二叉树。既去掉最后一行 ,是一棵满二叉树。 堆分为大根堆和小根堆。 大根堆:除根节点外的每一个结点的父亲节点都要不小于结点本身。 小根堆:除根节点之外的每一个结点的父亲结点都要不大于结点本身。构造一个堆:就像是 一个二叉树一样,我们可以用

2017-12-06 16:33:50 262

原创 最近公共祖先LCA--Tarjan算法

最近公共祖先 Lowest Common Ancestors在一棵树中,两个结点之间第一个共同的祖先。 如图: 结点10和11的公共祖先有1、7、8、⑨四个节点,但是只有⑨是离其最近的,所以只有⑨是LCA 同理,3和11的LCA即是根节点1。2和4的LCA是2。Tarjan算法:其实讲个道理,我也不知道究竟是不是tarjan算法,因为网上说这个dfs序离线做法不是tarjan啥的,姑且

2017-12-06 16:04:44 595

原创 数组模拟链表

链表作为一种数据结构,对于空间的利用率非常之高。但是对于链表没有学好的同学来说,链表难上天了。有没有一种解决方案能实现链表却又不那么难呢?当然有:那就是:数组模拟链表顾名思义,通过一些特殊的方法,可以让数组具有链表的作用。我们先放代码,然后解释原理。int head[maxn],e=0; struct node{ int next; int to; int w;}edge

2017-12-05 19:57:23 913

原创 Kruskal和Prim--最小生成树算法

最小生成树:最小生成树是指一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。稀疏图与稠密图的区别:判断标准如下:假设一个图G=(V,E)有n个节点,图G的每个节点的出度是一个固定的常数:k。由于E=kV=O(V) ,所以我们把符合E=O(V) 条件的图称为稀疏图。同理 :如果一个图G=(V,E)有n个节点,假设图G的每个节点的出度

2017-12-05 09:30:08 400

原创 二分答案

基本算法 二分答案 《跳石头》这是一道经典题目,出处为noip2015,也就是我参加OI的第一年题目描述:一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 为了提高比赛难度,组委会计

2017-12-04 22:32:16 418

空空如也

空空如也

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

TA关注的人

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