自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GenmCai

Be a salted fish with a dream!

  • 博客(51)
  • 收藏
  • 关注

原创 Docker 基础命令备忘录

很早之前就对Docker的大名有所耳闻,今日一学,满是欢喜。其容器和虚拟化概念的运用,把部署难度简易到了一个新的里程碑。我手中的项目尚需各种库的支持,凡是要部署到新的系统,都要受其部署的繁琐之苦,更何况是更大的项目。而有了Docker后,这繁琐之苦,算是化为了虚无。运行启动交互runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash root@d77ccb2e5cca:/#-i: 交互式操作。-t: 终端。ubuntu:15.10.

2020-10-24 22:33:10 191

原创 C++使用exit函数后出现内存泄漏

[info]内存泄漏的这个问题,有时其实是不需要去管的,但强迫症患者总会想去修复这些不完美的地方。[/info]问题简单点来说,就是使用exit会导致程序强制退出作用域,像全局函数这样的可以被正常释放,但是其他就不能够保证,目前测试是设计到内部动态分配的基本都可能无法被释放,造成可能程度上的内存泄漏。程序执行的代码段很简单,这个函数被设置成了回调函数,在被调用后,直接终止程序,造成程序可能性上的泄漏。void exitEvent() { exit(-1); }检测结果==298439==

2020-10-24 22:31:33 795 1

原创 Linux系统编程——信号

[info]信号处理虽然初学者用的不会很多,而且现有太多对信号的替代品。但作为一个打算专精发展的Coder来说,还是必须学习和掌握的。[/info]发送信号Linux下,一个进程给其他进程发送信号的API是kill函数#include <sys/types.h>#include <signal.h>int kill(pid_t pid, int sig);sig 参数决定了要发送的信号,pid决定要发送的进程对象。pid参数含义pid >

2020-10-24 12:00:13 231

原创 manjaro 更新失败之后崩溃 libdmx xorg

状况回到学校更新了下manjaropacman -Syyu,结果更新报错,并在注销登录后,图形界面直接崩溃。原因更新失败的原因是libdmx存在依赖,好像一起删除了xorg的程序(有一段时间了,给忘了具体的报错是啥)。解决方法第一步如果图形界面没有崩溃,那直接进行终端。如果图形界面已经崩溃,那么CTRL+ALT+F2(哪个tty都行)进入tty。第二步进行命令行的操作。tty中的话,如果之前是使用非英文的,那么可能会出现乱码,也不用慌,直接切换使用语言就行了LANG=en_US.UTF-8

2020-05-11 18:27:33 613

原创 操作系统网课学习笔记(二)

进程的基本概念顺序执行仅当前一操作执行完毕后,才能执行后续操作。特征顺序性处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。外部顺序性内部顺序性封闭性程序是在封闭的环境下运行的,它独占系统资源,执行过程中不受外界影响。结果可再现性程序执行得到的最终结果与程序执行速度无关,只要初始状态相同,每次执行结果必然相同。并发执行为...

2020-03-05 15:33:12 445

原创 MySQL数据操纵语言学习笔记(二)

(之前在hexo上写的MySQL笔记,还是放到CSDN看比较方便一点)Hexo上的地址:https://genmcai.github.io/2019/08/17/MySqlDML2/INSERT语句◆ INSERT语句可以向数据表写入记录,可以是一条记录,也可以是多条记录INSERT INTO 表名(字段1,字段2,......)VALUES (值1,值2,......);PS: ...

2020-02-23 19:55:51 141

原创 MySQL数据操纵语言学习笔记(一)

(之前在hexo上写的MySQL笔记,还是放到CSDN看比较方便一点)Hexo上的地址:https://genmcai.github.io/2019/08/16/MySqlDML1/记录查询◆ 最基本的查询语句是由SELECT和FROM 关键字组成的SELECT * FROM t_emp;SELECT empno,ename,sal FROM t_emp;◆ SELECT语句屏蔽了...

2020-02-23 19:54:11 186

原创 操作系统网课学习笔记(一)

操作系统概述操作系统的定义操作系统是覆盖在计算机硬件上的第一层软件,是对硬件系统的首次扩充。操作系统的目标1. 方便性内部标识符使用高级语言编写程序,由操作系统中的编译程序,将其翻译成机器代码,极大方便了开发。普通用户越来越高的人性化界面使得操作系统变得易学易用,大大方便了计算机的普及。2. 有效性CPU、内存和I/O设备等资源都处于忙碌状态,大大提高了系统的资源利...

2020-02-23 19:49:47 827

原创 MySQL数据库定义语言学习笔记

文章目录数据库的范式第一范式:原子性第二范式:唯一性第三范式:关联性字段约束主键约束非空约束唯一约束外键约束外建约束的闭环问题字符集、校对规则定义数据库的范式◆ 构造数据库必须遵循一定得规则,这种规则就是范式。◆ 目前关系数据库有6中范式,一般情况下,只满足第三范式即可。第一范式:原子性◆ 第一范式是数据库的基本要求,不满足这一点就不是关系数据库。◆ 数据表得每一列都是不可分割得基本...

2020-02-06 16:58:30 121

原创 MySQL系统安全性操作命令记录(一)

目录查看用户信息创建新用户重命名用户删除用户查看用户权限赋予用户权限撤销用户权限更改用户密码root密码忘记,更改密码查看用户信息进入mysql数据库USE mysql;进入user数据表查看用户信息SELECT user,host,password from user;创建新用户创建一个叫做user1的用户,密码是12345678CREATE user user1...

2020-02-02 00:07:03 196

原创 Linux下用于完整读入写出字节流套接字的readn、writen和readline函数

字节流套接字上调用read或write输入或输出的字节数可能比请求的数量少,然而这不是出错的状态。出现这个现象的原因在于内核中用于套接字的缓冲区可能已经到达了极限,此时所需的是调用者再次调用read或write函数,以输入或者输出剩余的字节。------ 《UNIX网络编程 卷1:套接字联网API》readnssize_treadn(int fd, void* vptr, size_t ...

2020-01-23 17:52:23 270

原创 yum命令 报错 File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:

因为需求,所以用yum安装了Python3,结果之后再使用yum后,就直接报错了,很明显是python升级后导致的。而如果不是直接删除了python2的文件,可以直接修改两个文件的内容,yum就能正常使用了。进入/usr/bin/yum文件vim /usr/bin/yum修改文件的部分内容修改前:#!/usr/bin/python修改后:#!/usr/bin/pytho...

2020-01-21 20:43:28 313

原创 Python跨域处理方法

引子与Egret进行通信的时候,报了一个XMLHttpRequest cannot load '', NO 'Access-Control-Allow-Origin' header is present on the requested resource. Origin '' is therefore not allowed access.的错误,没有前端相关知识的我,还以为是我的HTTP响应报...

2020-01-15 18:57:26 1245

原创 大小端模式的判断和转化

大端模式:指的是数据低字节在内存高字节中,而数据高字节在内存低字节中,看上去跟人的阅读习惯类似。小端模式:指的是数据低字节在内存低字节中,而数据高字节在内存高字节中。PS:字有点差,见谅。。。判断和转换代码:#include <iostream>using namespace std;// 判断是否是大端 bool isBig() { int var = 0...

2020-01-11 12:13:55 357

原创 Python操纵MySQL数据库(一)

数据库CRUD操作是什么CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层。MySQL Connector(一)◆ MySQL Connector是MySQL官方的驱动模块,兼容性特别好创建链接(一)import mysql.connect...

2020-01-10 20:50:17 1819

原创 二叉树的非递归遍历

先序遍历非递归实现从根节点开始向左遍历,因为是先序遍历,所以每次刚遇到的节点直接输出就行,并把节点加入栈中。单次while (p != nullptr)内循环结束,就代表以开始节点为子树的左子树已经遍历完毕,接下来就需要遍历最底层子树的右节点,即从栈中取出栈顶,也就是之前遍历左子树的最后一个节点,指向其的右儿子,如果有右儿子,则开始遍历以右儿子为根节点的子树的左子树,开始循环,如果没有右儿子,也...

2020-01-08 14:50:49 205

原创 计算机网络知识点整理

第四章 网络层:数据平面第五章 网络层:控制平面比较和对照链路状态和距离矢量这两种路由选择算法 p246链路状态路由选择算法一种使用全局信息的算法。集中式的算法。距离向量(Distance-Vector, DV)算法一个异步的、迭代的、自我终止的、分布式的算法。每个节点仅与它直接相邻的邻居交谈,每个节点为其直接相邻的邻居提供了自己到网络中所有其他节点的最低开销。异步:...

2020-01-02 12:54:26 1977

原创 排序算法——快速排序

快速排序基本做法在此我们使用递归的快速排序。既然使用了递归,自然就是要解决一些重复的子任务,然后完成最后的大任务,而大任务自然就是让整个数组整体有序,那需要重复的小任务是什么呢?快排的一个个子任务,就是要在各自范围内的数组中取一个数当基准数(一般取范围内的最左边、最右边或中间的数),然后让其它的数小于基准数的放左边,大于基准数的放右边,这就是快速排序递归的子任务。整体的实现则是先对【1,...

2019-12-30 11:28:50 322

原创 UVA11992(线段树)

题目题意road命令连接第A坐标和第B坐标的点。而line则是查看纵坐标C拉出的扫描线过几个联通块,要求求联通块中的数量和是多少。(具体的可以查看原题)题解其实是线段树一个简单的模拟,即并查集找联通块和联通块中点的数量,然后每次更新的时候,删除A点和B点的信息,重新建立A点和B点连接后的信息就行了。#include<iostream>#include<cstring...

2019-12-30 00:10:56 283

原创 CodeForces - 12D Ball 线段树

题目题意emmmm,就是题目描述的女性很奇葩,她们去参加国王举办的舞会,而每个女士有B、I、R三种属性,如果她们得知舞会上存在一个比自身所有属性都要高,那么她就会选择跳楼。。。问有多少个要跳楼的女士。题解其实很简单,即按照B进行从大到小排序,然后线段树对比I大的区间进行查询最大值,如果最大值大于自身的R那么这位正在查询的女士选择跳楼。最后把这么女士的信息插入到线段树的I点给予R值,即查完...

2019-12-30 00:02:28 202

原创 POJ - 2777 Count Color 线段树+位运算

题目Count ColorTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 55483 Accepted: 16628DescriptionChosen Problem Solving and Program design as an optional course, you are required to solve...

2019-12-29 23:59:22 202

原创 排序算法——基数排序

基数排序基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或bin sort,顾名思义,它是透过键值的部分资讯,将要排序的元素分配至“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(Nlog(r)m)O(Nlog(r)m)O(Nlog(r)m),其中r为所采取的基数,而m为堆数,在某些...

2019-12-29 23:44:00 282

原创 排序算法——桶排序

桶排序前言桶排序是一个在时间复杂度和空间复杂度十分极端的算法,它的时间复杂度可以达到O(N)O(N)O(N),但是空间复杂度确是十分的高,这个高取决于数组中最大的数。即最大的数是多少,就需要开辟多少的空间,当然这个说法只对于普通的桶排序来说的,对于有些使用链表或者桶排序+插入排序的做法,就各有情况了。基本做法做法其实十分的简单,程序中开辟一个笼罩数组数值范围的数组,这个数组中的每个数都被...

2019-12-29 18:39:10 146

原创 排序算法——希尔排序

希尔排序我对希尔排序进行学习的博客:希尔排序–简单易懂图解前言可以说是一个加强版的插入排序。在插入排序中,最好的时间复杂度是O(N)O(N)O(N)可以说是极其舒服的线性时间复杂度,而这最好的情况,就是当数组中所有的数都是有序的时候,这是O(N)O(N)O(N)的复杂度。或者稍微比较好的情况,就是数组中大部分数都是有序的时候,那么,插入排序的时间复杂度,将趋近于O(N)O(N)O(N),也...

2019-12-29 13:28:44 287

原创 排序算法——插入排序

插入排序拥有一个无序的数组,我们只需先拿一个数(一般拿第一个),把它先当作一个有序的数组。然后把这个无序数组中其它数分别插入到已经有序的数组中即可。代码构造思路:首先得考虑要用什么数据结构,是链表还是顺序表。在下面的代码中,我使用的是顺序表,其实就是普通的数组。然后因为我拿第一个数做为已经有序的数组,剩下只需要把其它在无序数组中的数,插入到有序数组中即可,所以外循环其实只需要循环n-1次。而每...

2019-12-29 10:14:32 165

原创 ACM-ICPC 2018 徐州赛区网络预赛A题

【题目】【题意】英语不好,如果翻译没差多少的话,出题人应该是个东方厨,也算是同道中人了。即有$2^k-1$个编号的面具,面具的编号为$0 \dots 2^k-1$。然后有N个人围成一圈,每个人都带个面具(面具编号可以重复),让相邻的两个人的面具编号值异或后取反不为0的方法有多少种。【题解】两个数异或取反后为0,即取反之前的数的二进制全都是由1组成,也就是两个数是互补的,而能与一个数互...

2019-12-26 18:39:41 263

原创 Git常用命令

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 —— 百度百科PS:这篇博文相当于字典,方便查阅用。而如果想要重零开始学习Git的使用技巧,推荐去廖雪峰的官方网站上学习。还有就是,下面的$都是可以省略的。基础操作命...

2019-12-26 18:36:45 142

原创 大学物理公式和名词整理

大学物理公式描述质点运动的物理量位矢公式: r⃗=r⃗(t)\vec{r} = \vec{r}(t)r=r(t)位置矢量是描述某一时刻质点所在空间位置的物理量。位移公式: Δr⃗=r2⃗−r1⃗\Delta{\vec{r}} = \vec{r_2} - \vec{r_1}Δr=r2​​−r1​​位移是描述质点位置变化的物理量。速度公式:平均速度 vˉ=ΔsΔt\disp...

2019-12-26 11:51:26 9509

原创 Linux 命令学习——expr

exprexpr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。 —— 菜鸟教程简单的四则运算#!/bin/bash expr 3 + 2 expr 3 - 2 expr 3 \* 2 expr 3 / 4 5160PS:乘号...

2019-12-25 17:23:04 149

原创 Shell学习笔记(二)

循环体for第一种循环方法类似于C++的循环,外围需要两个括号。shell:#!/bin/bash for ((i = 0; i < 5; ++ i))do printf "$i " done 输出:0 1 2 3 4第二种循环方法类似于python对列表的循环。shell:#!/bin/bash for i in 0 1 2...

2019-12-24 18:44:04 112

原创 Shell学习笔记(一)

变量Shell变成中一般有三种变量:自定义变量:仅在当前Shell中定义的变量。Linux已定义的环境变量:使用env命令查看所有的环境变量,而使用set命令既可以查看环境变量也可以查看自定义变量。Shell变量:即存在Shell程序中的特殊变量(目前还没接触到)。数值变量数值变量声明#!/bin/bash var1=3 ...

2019-12-23 18:21:16 140

原创 Linux中各硬件装置的文件名

在Linux系统中,每个装置都被当成一个文件来对待装置装置在Linux内的文件名SCSI

2019-12-22 13:20:52 200

原创 C++11中的nullptr和NULL的区别

代码:#include <iostream>using namespace std;void foo(long long num) { cout << "This is long long parameter" << endl;}void foo(int * num) { cout << "This is poin...

2019-12-13 20:36:06 175

原创 【数据结构】 二叉树恢复

先序 + 中序 恢复二叉树void createBinaryTree(BintreeNode *& t, char * preorder, char * inorder, int n){ if (n == 0) { t = NULL; } else { int k = 0; while (preor...

2019-11-20 23:21:25 553

原创 题解 | 《算法竞赛进阶指南》递归实现组合型枚举

【题目】从 1~n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。n>0n \gt 0n>0, 0≤m≤n0 \leq m \leq n0≤m≤n, n+(n−m)≤25n+(n-m)\leq 25n+(n−m)≤25。按照从小到大的顺序输出所有方案,每行1个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较...

2019-11-18 16:35:38 399

原创 题解 | 《算法竞赛进阶指南》递归实现排列型枚举

【题目】把 1∼n1\sim n1∼n 这 n(n<10)n(n \lt 10)n(n<10)个整数排成一行后随机打乱顺序,输出所有可能的次序。按照从小到大的顺序输出所有方案,每行1个。 首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。【题解】循环遍历1-N个数,优先遍历小的数,让其尽可能的选遍历到的数。并需要用一个标记...

2019-11-18 16:35:05 327

原创 题解 | 《算法竞赛进阶指南》递归实现指数型枚举

【题目】从 1∼n1\sim n1∼n这n(n≤16)n (n \leq 16)n(n≤16)个整数中随机选取任意多个,输出所有可能的选择方案。每行一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。【题解】DFS,即深度优先搜索。深度、优先、搜索。即可以把单行的输出联想成一条线...

2019-11-18 16:33:57 355

原创 题解 | 《算法竞赛进阶指南》A Tiny Problem with intergers

【题目】给定长度为N的数列A,然后输入M行操作指令。第一类指令形如“C l r d”,表示把数列中第l~r个数都加d。第二类指令形如“Q X”,表示询问数列中第x个数的值。对于每个询问,输出一个整数表示答案。【题解】区间更新,单点查询,第一反应要么树状数组,要么线段树。个人更擅长线段树,就说说线段树吧。线段树是一种数据结构,是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间...

2019-11-18 16:30:45 326

原创 题解 | 《算法竞赛进阶指南》 没有上司的舞会

【题目】Ural大学有N名职员,编号为1~N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数 HiHi 给出,其中 1≤i≤N1\leq i\leq N1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。【题解】...

2019-11-17 21:31:22 327

原创 题解 | 《算法竞赛进阶指南》 你能回答这些问题吗(三)

【题目】给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 maxx≤l≤r≤y(∑ri=lrA[i])max_{x \leq l \leq r \leq y}({\sum_{r_i=l}^{r}A[i]})maxx≤l≤r≤y​(∑ri​=lr​A[i])“2 x y”,把 A[x] 改成 y。对于每个查询指令,输...

2019-11-17 21:30:34 250

空空如也

空空如也

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

TA关注的人

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