自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ubuntu系统怎么退出tty模式(开机自动进入)?(仅供参考)

这几天疯狂踩坑,昨天刚make完llvm,结果今天启动ubuntu就出现了问题。环境:ubuntu18.04开虚拟机的时候自动进入tty模式,图形界面一闪而过,网上各种快捷键都没用,比如alt+ctrl+f7,我的解决方案是安装lightdmsudo service lightdm restart提示没有安装这个服务,安装之后再重新启动服务就好了。sudo apt-get install lightdm真是各种坑,原因可能是nvidia显卡和这个版本的系统兼容不好,弄完赶紧做个快照..

2021-01-04 10:19:34 12279 7

原创 安装g++时出现的一种报错及解决方案

在入门llvm的时候碰倒了各种错误,记录一下,也为其他人提供参考环境:主机WIN10+虚拟机vmware + ubuntu18.04 amd架构ll@ubuntu:~/src/llvm-project-main/build$ cmake -DLLVM_ENABLE_PROJECTS=clang -G "Unix Makefiles" ../llvm-- The CXX compiler identification is unknownCMake Error at CMakeLists.txt:4

2021-01-03 09:36:33 2201 1

原创 网络基础知识笔记

B站千峰网络信息安全开源视频课程beglage的CSDN博客计算机网络【第7版】谢希仁可能未来一段时间要进行网络方面的工作,特来补充一下网络的基础知识,仅作学习使用,本人做了些补充,若有错误,还望指正。另外,改变了一下笔记的格式,我喜欢放在一篇笔记里,可能有些长。一、DHCP部署与安全Dynamic Host Configure Protocol1、作用自动分配IP地址2、DHCP的相关概念地址池/作用域:(IP、子网掩码、网关、DNS、租期),DHCP协议端口是UDP 67/6

2020-11-17 15:57:51 2797 1

转载 windows和linux centos版本的区别

Windows 7 Starter(初级版)  这是功能最少的版本,缺乏Aero特效功能,没有64位支持,它最初设计不能同时运行三个以上应用程序,幸运的是,微软最终取消了这个限制,最终版其实几乎可以执行任何Windows任务。一个奇怪的限制是不能更换桌面背景。另外,没有Windows媒体中心和移动中心等。它主要设计用于类似上网本的低端计算机,通过系统集成或者OEM计算机上预装获得,并限于某些特定类型的硬件。Windows 7 Home Basic(家庭普通版)  这是简化的家庭版,中文版预期售价399

2020-11-02 16:31:07 2608

原创 北邮、北科推免面试

北邮:英语自我介绍C语言中参数传递方式?值传递地址传递引用传递(C++才有)为什么能同时运行两个软件(进程并发)请从操作系统实现的角度回答一下怎么实现进程并发?(可能是RR,回答的不好)处理死锁的方法?(挺重要的)说一下内存,cache,硬盘的关系北科:英语面试:英文自我介绍have you been abroad?介绍项目(口语拉跨,自觉的用汉语说了)项目:图像识别项目,图像识别用的什么处理过异常吗?异常的作用?常用异常的处理方法?为什么要进行异常处理项

2020-10-14 16:46:28 785 2

原创 113. 路径总和 II(DFS遍历树)

113. 路径总和 II(DFS遍历树)给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1返回:[ [

2020-09-26 12:03:23 177

原创 南理预推免面试

C++ include文件<>和“” 的区别#include< > 引用的是编译器的类库路径里面的头文件。假如你编译器定义的自带头文件引用在 C:\Keil\c51\INC\ 下面,则 #include<stdio.h> 引用的就是 C:\Keil\c51\INC\stdio.h 这个头文件,不管你的项目在什么目录里, C:\Keil\c51\INC\stdio.h 这个路径就定下来了,一般是引用自带的一些头文件,如: stdio.h、conio.h、strin..

2020-09-23 17:38:48 1676 3

原创 C++日期类模拟的算法题

日期模拟类型的总结1. 计算天数#include <stdio.h>#include <iostream>using namespace std;#define ISYEAP(x) x%4==0&&x%100!=0||x%400==0?1:0int main(){ int n,y,m,d,x; int a[13][2]= { 0,0, 31,31, 28,29,

2020-09-16 18:48:21 203

原创 哈夫曼树的带权路径长度(C++优先队列实现)

哈夫曼树题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和的最小值。输入描述:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出描述:输出权值。示例1输入5 1 2 2 5 9输出37#include <iostream>#include <queue

2020-09-16 17:36:37 2245

原创 经典动态规划:最长公共子序列(LCS)

最长公共子序列#include <iostream>#include <string.h>#include <algorithm>using namespace std;int main(){ string a, b; while(cin>>a>>b){ //dp[i][j] 的含义是:对于 s1[1..i] 和 s2[1..j],它们的 最长公共子序列 长度是 dp[i][j] int

2020-09-16 16:14:09 136

转载 C语言预处理指令-宏定义、文件包含、条件编译

预处理指令简介1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译2.为了区分预处理指令和一般的C语句,所有预处理指令都以符号"#"开头,并且结尾不用分号3.预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾。习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件4.C语言提供的预处理指令主要有:宏定义、文件包含、条件编

2020-08-27 10:52:12 2172 1

原创 浙大PTA数据结构与算法题目集(中文)题解集复习用

7-1 最大子列和问题 (20分)(dp或贪心)给定K个整数组成的序列{ N1, N2, …, N**K },“连续子列”被定义为{ N**i, N**i+1, …, N**j },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:数据1

2020-08-26 09:43:02 10051 2

转载 几个搜索技巧

1、同时搜索几个关键词:关键词用空格分开 例如:“中国 历史”(会搜索显示同时包含中国、历史两个词的网页)2、排除某个关键词:被排除的词前面加上-号 例如:“中国 历史 -清朝”(会把有清朝两个字的网页过滤)3、强制搜索某个词:前面加上+号 例如:“+中国 北京”4、模糊搜索(用通配符代替) 例如:“叹为*止”5、搜索固定句子:采用英文双引号 例如:“google搜索”6、搜索若干个词语中的任意一个或多个:关键词用or分开 例如:“中国 or 历史”

2020-07-27 21:42:11 857

转载 短边翻转一张A4纸打印18页PPT

多亏看过这位大哥的文章PPT打印技巧——你还在一页打六张吗?通过ppt的自身排版来打印,我们会发现一张A4的纸上会有6张,但是每个图片之间的空格很大,导致ppt打印出来很小,既看不清楚,又浪费了纸张,那么我们就应该想办法来调整ppt之间的空格了,所以这得采用另外一种方案:那就是,ppt还是选择”幻灯片”,通过打印机来设置一张A4的纸打印多张就可以了.点击打印机后面的属性然后选择布局或者相关的(根据打印机不同而不同),其实这个步骤就是设置在一张A4的纸上打印多张ppt,利用打印机自身来排版然后打印就

2020-07-26 14:46:19 918

原创 设计模式复习(十六)-------命令模式

1. 定义耦合与变化不恰当的紧密耦合是软件不能抵御需求变化的根本原因。不仅实体对象与实体对象之间存在耦合关系,实体对象与行为操作之间也存在耦合关系。创建型设计模式解决的创建者和被创建对象间的耦合问题;结构型设计模式解决的是实体对象和实体对象间的耦合问题;行为型设计模式解决的是实体对象和行为操作之间的耦合问题。在软件构建过程中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合——比如需要对行为进行“记录、撤销/重做(undo/redo)、事务”等处理,这种无法抵御变化的紧耦合是

2020-07-23 20:40:05 527

原创 设计模式复习(十五)-------职责链模式

1. 职责链模式简介在软件构建过程中,一个请求可能被多个对象处理,但是每个请求在运行时只能有一个接受者,如果显式指定,将必不可少地带来请求发送者与接受者之间的紧耦合。如何使请求的发送者不需要指定具体的接受者?让请求的接受者在运行时决定谁来处理请求,从而使两者解耦。职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求。将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能

2020-07-23 16:25:19 253

原创 设计模式复习(十四)-------观察者模式

1. 观察者模式简介软件系统:一个对象的状态或行为的变化将导致其他对象的状态或行为也发生改变,它们之间将产生联动;观察者模式:定义了对象之间一种一对多的依赖关系,让一个对象的改变能够影响其他对象;发生改变的对象称为观察目标(主题对象),被通知的对象称为观察者;一个观察目标可以对应多个观察者。观察者模式又叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观

2020-07-23 15:48:02 565

原创 设计模式复习(十三)-------策略模式

1. 策略模式的简介定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户而变化。——《设计模式》GoF在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?2. 策略模式的结构环境(Context)角色:持有一个Strategy类的引用。抽象策略(Strat

2020-07-22 10:10:18 260

原创 设计模式复习(十二)-------模板方法模式

1. 模板方法的引入变与不变变化是软件设计的永恒主题,如何管理变化带来的复杂性?设计模式的艺术性和复杂度就在于如何分析,并发现系统中的变化点和稳定点,并使用特定的设计方法来应对这种变化。在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。如何在确定稳定操作结构的前提下,来灵活应对各个子步骤的变化或者晚期实现需求?准备一个抽象类,将部分逻辑以具体方法以及具体构造子类的形式实现,然

2020-07-22 09:59:45 140

原创 设计模式复习(十一)-------外观模式

1. 外观模式的引入如医院的就诊的情况(医院—子系统,外观—导医)客户端程序与完成实际业务功能的子系统程序之间通信时采用的2种方案:上述A方案的问题在于组件的客户(即外部接口,或客户端程序)和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战。如何简化外部客户程序和系统间的交互接口?如何将外部客户程序的演化和内部子系统的变化之间的依赖相互解耦?子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得

2020-07-21 22:13:50 230

原创 设计模式复习(十)-------装饰模式

1. 装饰模式的引入装饰模式以对客户端透明的方式扩展对象的功能,是一种用于替代继承的技术,它通过一种无须定义子类的方式给对象动态增加职责,使用对象之间的关联(组合)关系取代类之间的继承关系。不能过度地使用继承来扩展对象的功能静态特质,是指如果想要某种功能,必须在编译的时候就要定义这个类,这也是强类型语言的特点;静态,就是指在编译的时候要确定的东西;动态,是指运行时确定的东西;----更加灵活由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性,并且随着子类的增多(扩展功能的增多),

2020-07-21 22:07:21 717

原创 设计模式复习(九)-------组合模式

1. 定义大名鼎鼎的套娃模式组合模式有时又称部分-整体模式(Part-Whole)将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。——《设计模式》GoF用来描述整体与部分的关系将对象组织到树结构中可以使客户端将单个对象与组合对象统一处理。对象的树结构一个树结构由两种节点组成:树枝节点和树叶节点。树枝节点可以有子节点,而一个树叶节点不可以有子节点。除了根节点外,其它节点有且只有一个父节点。2. 为什么要用组合模式

2020-07-21 09:32:13 198

原创 设计模式复习(八)-------桥接模式

1. 定义将抽象部分与实现部分分离,使它们都可以独立地变化。(抽象、实现、脱耦)——《设计模式》GoF抽象—存在于多个实体中的共同的概念性联系,就是抽象。作为一个过程,抽象就是忽略一些信息,从而把不同的实体当做同样的实体对待。实现—针对抽象给出的具体实现。所谓耦合,就是两个实体的行为的某种强关联。而将它们的强关联去掉,就是耦合的解脱,或称脱耦/解耦。在这里,脱耦是指将抽象和实现之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联。将两个角色之间的继承关系改为组合关系,就是将它们之间的强

2020-07-21 09:28:24 143

原创 设计模式复习(七)-------适配器模式

1. 定义将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——《设计模式》GoF适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。Adapter模式很像货物的包装过程:被包装的货物的真实样子被包装所掩盖和改变,因此有人把这种模式叫做包装(Wrapper)模式。事实上,大家经常写很多这样的Wrapper类,把已有的一些类包装起来,使之具有能满足需要的接口。适配器模式有类适配器模式和对象适配器模式两种。变

2020-07-21 09:26:33 242

原创 设计模式复习(六)-------原型模式

1.定义使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。——《设计模式》GoF通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类型对象。动机: 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化(如更换类型),但是它们却拥有比较稳定一致的接口(共同的父类)。如何应对这种变化?如何向客户端程序隔离出这些易变对象,从而使得“依赖这些易变对象的客户程序”不随着需求改变而改变?2.

2020-07-18 11:43:18 1800

原创 计算机系统结构习题整理

一、简答题1. 请系统结构的含义,分几层。计算机系统的层次结构分为六层,层次结构由高到低分别为应用语言机器级、高级语言机器级、汇编语言机器级、操作系统机器级、传统机器语言机器级、微操作语言机器级。其中前5-2级为虚拟机器级,后两级为实际机器级。应用语言程序经应用程序包翻译成高级语言程序->高级语言程序经编译程序编译成汇编语言(或是某种中间语言程序,或是机器语言程序)->汇编语言程序经汇编程序翻译成机器语言程序->一般用机器语言程序解释作业控制语句->用微操作程序解释机器

2020-07-06 22:38:59 940

原创 设计模式复习(五)-------建造者模式

1.定义建造者模式可以将部件本身和它们的组装过程分开,关注如何一步步创建一个包含多个组成部分的复杂对象,用户只需要指定复杂对象的类型即可得到该对象,而无须知道其内部的具体构造细节。将一个复杂对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。—《设计模式》GoF在软件系统中,有时候面临着“一个复杂对象”的创建工作,复杂对象由各个部分的子对象用一定的算法构成;由于需求的变化,复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。如何应对这种变化?

2020-06-30 21:54:08 3086

原创 设计模式复习(四)-------抽象工厂模式

1.抽象工厂的定义抽象工厂(Abstract Factory)模式是所有形态的工厂模式中最为抽象和最具一般性, 也最复杂的一种形态。为了方便描述抽象工厂模式,首先引进一个新概念:产品族(Product Family)。所谓产品族,是指位于不同产品等级结构,功能相关联的产品组成的家族。如图:所谓的抽象工厂是指一个工厂等级结构可以创建出分属于不同产品等级结构的一个产品族中的所有对象,**通俗的说,就是一个具体工厂创建一个产品族中的所有对象。**如果用图来描述的话,如下图:2.角色与结

2020-06-30 21:52:29 180

原创 设计模式复习(三)-------简单工厂模式和工厂模式

1.简单工厂模式的定义简单工厂模式 (Simple Factory Pattern):定义一个工厂类,内含一个静态工厂方法,它可以根据参数的不同返回不同类的实例,被创建的实例通常都具有共同的父类。实现简单,以前写代码的时候也经常用这个模式,因为过于简单,甚至不是GoF 23个设计模式中的一员…通俗的解释:Simple Factory模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返回的对象所属的类都有一个公共的父类和一些公共的方法。它属于类创简单工厂模式如果需要什么对

2020-06-30 12:07:51 270

原创 C++ map容器

KY127 统计字符又把map忘了…复习一下#include <bits/stdc++.h>using namespace std;int main(){ string s; while(getline(cin,s) && s != "#"){ string str; getline(cin, str); map<char, int> mp; mp.clear(); .

2020-06-29 22:03:45 1877

原创 C++pair对组

今天做题用到了pair对组,学习一下5448. 判断路径是否相交class Solution {public: bool isPathCrossing(string path) { set<pair<int, int> > pool; pool.insert(make_pair(0, 0)); int i = 0, j = 0; for(auto c : path){ if(c ==

2020-06-28 19:15:22 196

原创 牛客网------KY223二叉排序树(BST的建树、递归遍历)

题目描述输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。输入描述:输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。示例1输入51 6 5 9 8输出1 6 5 9 8 1 5 6 8 9

2020-06-27 13:37:17 203

原创 牛客网------KY194树查找

KY194 树查找题目描述有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入描述:输入有多组数据。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。输出描述:输出该树中第d层得所有节点,节点间用空格隔开,最后一个节点后没有空格。示例1输入41 2 3 42输出2 3题解:#include <iostream>#include <algorithm&g

2020-06-27 08:31:41 178

原创 牛客网-------KY207二叉排序树

KY207 二叉排序树题目描述输入一系列整数,建立二叉排序树,并进行前序,中序,后序遍历。输入描述:输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素不用输出。示例1输入[复制](javascript:void(0)?

2020-06-26 23:11:04 194

原创 设计模式复习(一)

1.软件危机的表现:软件成本日益增长开发进度难以控制软件质量差软件维护困难2.软件危机的原因用户需求不明确缺乏正确的理论指导软件规模越来越大软件复杂度越来越高3.如何克服软件危机重用的设计方法、多维管理模式4.设计模式概要设计模式四要素:模式名称(Pattern Name)问题(Problem)解决方案(Solution)效果(Consequence)设计模式分为三类:创建型模式(Creational Patterns)是类在实例化时使用的模式,当一些

2020-06-25 15:14:04 158

原创 最小生成树Prim&Kruskal算法

题目链接:1258—Agri-NetDescriptionFarmer John has been elected mayor of his town! One of his campaign promises was to bring internet connectivity to all farms in the area. He needs your help, of course. Farmer John ordered a high speed connection for his farm

2020-06-24 16:36:59 129

转载 C++queue队列与stack栈

queue队列:调用头文件:#include<queue>using namespace std;详细用法(部分):queue<Type> k;      ------      定义一个queue的变量(定义时已经初始化)      例如: queue<in...

2020-06-24 09:28:19 153

原创 拓扑排序模板

2367-Genealogical tree#include <set>#include <queue>#include <vector>#include <iostream>#include <algorithm> using namespace std;const int MAXN = 110;int main(){ int n; vector<int> adj[MAXN]; //邻接矩阵 int indeg

2020-06-24 08:41:17 121

转载 C++set集合

set集合容器:调用头文件:#include<set>using namespace std;详细用法(部分):set<int> t      ------      定义一个int类型的容器,(默认)里面元素从小到大 set<int, greater<int> > t      ------      定义一个int类型的容器,里

2020-06-23 22:03:42 137

原创 C++vector容器

1.什么是vector?向量(Vector)是一个封装了动态大小数组的顺序容器(Sequence Container)。跟任意其它类型容器一样,它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组。线性排序,随机存储2.基本操作//向量的头文件 #include <vector>#include <iostream>#include <algorithm> using namespace std;//遍历函数 void

2020-06-23 21:20:11 125

空空如也

空空如也

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

TA关注的人

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