自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 深度优先搜索

【代码】深度优先搜索。

2024-02-29 18:51:42 225

原创 原码反码补码、浮点数

数值具有正负两种符号,但是计算机仅由0和1两种状态构建而成,因此并没有专门用来表示正负号的原生方式,我们凭直觉设计就是挪用其中的一位来表示正负号,简单起见,如果我们用3位表达一个数值,这样的编码系统实际上能够表达的范围将会是: 首先,0的表示不唯一,出现了-0和+0其次(也是更重要的原因)它需要单独的硬件电路来确定正负号。即一个负数的二进制形式改为其绝对值部分按位逐位反转,称为 [ 一补码 ] (ones’ complement),举例来说,如果我们用3位表达一个数值, 十进制数值 -2 用反码表示是 10

2024-02-07 22:53:25 178

原创 Linux下库函数、静态库与动态库

库是二进制文件, 是源代码文件的另一种表现形式, 是加了密的源代码;是一些功能相近或者是相似的函数的集合体.

2024-02-06 22:42:41 722

原创 模拟队列相关练习

push xpopemptyquery现在要对队列进行 M 个操作,其中的每个操作 33 和操作 44 都要输出相应的结果。

2024-02-05 20:12:23 125

原创 模拟栈相关练习

push xpopemptyquery现在要对栈进行 M 个操作,其中的每个操作 33 和操作 44 都要输出相应的结果。

2024-02-05 19:48:44 230

原创 链表相关练习

注意:题目中第k个插入的数并不是指当前链表的第k个数。例如操作过程中一共插入了n个数,则按照插入的时间顺序,这n个数依次为:第1个插入的数,第2个插入的数,…(3) “I k x”,表示在第k个输入的数后面插入一个数x(此操作中k均大于0)。(2) “D k”,表示删除第k个输入的数后面的数(当k为0时,表示删除头结点)。现在要对该链表进行M次操作,进行完所有操作后,从头到尾输出整个链表。(1) “H x”,表示向链表头插入一个数x。(2) 删除第k个插入的数后面的数;(1) 向链表头插入一个数;

2024-02-03 22:03:50 171

原创 Acwing802离散化

【代码】Acwing802离散化。

2024-02-02 22:05:13 164

原创 C++纯虚函数

c++中纯虚函数与java,c#等中的接口或抽象方法相同,实际上纯虚函数在我们基类定义一个没有实例化的函数,强制使子类实例化public:private:public:}//c++11之后新加的一种,用于检查virtual语法上是否有错我们在调用PrintName(p)函数时,我们通过虚函数的重写不论如何都只是输出“Cherno”,那么父类Entity的实例化对于我们来说就没有用,则我们可以设为纯虚函数则。

2023-01-07 16:01:18 218

原创 c++虚函数

虚函数在面向对象整个过程都非常重要!,虽然会带来内存以及性能上的损耗,但相对来说微乎其微。因为函数在类内部起作用,在调用时,我们通常会调用属于该类型的函数(方法)!这就用到虚函数virtual,有一种动态联编实现,用于子类对父类的方法重写。虚函数允许我们在子类中重写方法!但是建议不要反着来,容易出问题。

2023-01-07 11:02:40 120

原创 ToCharArray()

将字符串改为字符串数组,可以逐一输出。

2023-01-03 20:59:39 265

原创 charAt的用法

在JAVA中,将字符串中的给定索引处返回char值在JAVA中的String不像c++中的string比如:C++中定义string s=“abc”;s[0]=='a';JAVA中定义String S=“abc”;S[0]!='a';而JAVA中charAt的作用就是把让S[0]==‘a’

2023-01-03 20:36:03 747

原创 Linux实用操作

Cpu:Cpu使用率、us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id :空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,st:强制等待占用CPU率。· .tar,称之为tarball,归档文件,即简单的将文件组装到一个.tar的文件内,并没有太多文件体积的减少,仅仅是简单的组装。· 公认端口:1~1023,通常用于一些系统内置或知名程序的预备使用,如SSH服务的22端口,HTTPS服务的443端口。

2022-12-29 22:16:53 259

原创 Linux用户和权限

目录认知root用户了解什么是root用户(超级管理员)掌握用户切换命令su和exit命令:演示:掌握sudo命令演示:用户、用户组管理理解用户、用户组的概念:掌握用户、用户组管理的相关命令:演示:演示: 用户管理:演示:getent命令:信息表示:演示:查看权限控制掌握查看Linux文件的权限管控信息:掌握读、写、执行三种权限的含义:认知权限信息: rwx的含义:修改权限控制 - chmod掌握使用chmod修改权限信息:掌握使用数字序号标记权限:举例:修改权限控制 - chown掌握使用chown修改所

2022-12-24 13:37:01 260

原创 Linux的基础命令

Linux的目录结构是一个树形结构,不同于Windows拥有多个盘符,如C、D、E盘,Linux系统只有一个根目录('/'),所有文件均在它的下面。· 参数,关键字,必填,表示过滤的关键字,带有空格或其他特殊符号,建议使用“ ”,将关键字围起来。· 同样没有选项,只有必填参数,参数表示:被查看的文件路径,相对、绝对、特殊路径符都可以。· 参数2,Linux路径,表示要移动去的地方,如果目标不存在,则进行改名,确保目标存在。· 参数,文件路径,必填,表示要过滤内容的文件路径,可作为内容输入端口。

2022-12-20 16:59:28 1075

原创 印章、拿金币、数字游戏

深度遍历,利用回溯算法求解即可,注意第一次找到的即为最小字典序,找到直接返回,若没有满足则不输出,样例5即为找不到满足的条件,即不输出。明确dp[i][j]在使用中i、j、dp的含义,始终抓住这个含义,不要弄混,在这里我将i弄成物品种类,j弄成背包容量,dp为概率。在写本题时,切记不能用局部最优解,然后每到一个点,求它是从上面路径过来拿的金币多还是下面,递推公式这就出来了。

2022-12-10 22:56:20 377

原创 完美的代价、矩形面积交、矩阵乘法、分解质因数

采用局部最优解思路(又称贪心思想),从尾部寻找能与头部元素能匹配的第一个,然后直接移动到最后,使得这两个字母对称,以此类推。利用矩阵的性质相乘即可,三层循环相乘,因为每一层需要计算n次,顺便对0次阶特判一下即可。利用交集性质直接求解即可,即最小值大于最大值并且最大值大于最小值。本题数量级1e4,暴力求解即可,质因数的常规求解。

2022-12-08 22:04:40 96

原创 数据结构——排序

其实就是特殊的完全二叉树。

2022-12-01 22:10:52 201

原创 数据结构——查找

折半查找:进行加法与除法的运算插值查找:进行复杂的四则运算斐波那契查找:最简单的加减法运算在海量数据前,这些细微的运算差距可能会影响最终的效率,视情况选择对于二叉排序树而言,因为是以链表的方式存储,即插入和删除的时间性能比较好但对于查找而言,比较看重二叉树的形状,故引申出如何让二叉排序树平衡的问题通过关键字,不需要比较就能获得需要记录的存储位置,这就是一种新的技术——散列技术散列技术是在记录的存储位置和他的关键字之间建立一个确定的对应关系,通俗讲类似于函数F(x)=x;

2022-11-30 23:36:56 707

原创 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)

对于树的问题而言,解决问题的首要问题是对于树的重建重建而言,你可以选择用数组下标与值串联起来的方式,即类似于并查集合并的方式也可以选择用结构体指针的方式重建,相对而言没有纯数组实现的方式运算速度快。

2022-11-26 22:12:27 319

原创 还原二叉树(求高度并输出二叉树)

【代码】还原二叉树(求高度并输出二叉树)

2022-11-25 10:36:54 1162

原创 7-7 字符串关键字的散列映射(及map的基本使用方法)

map是STL的一个关联容器,它提供一对一的hash包含在头文件#include其中key为索引值,可以近似认为就是相当于数组的下标,value相当于值(其实理解起来应该是key存在了value的位置)下面介绍map函数的几种用法1、查找元素即查找关键key出现时,它返回数据所在对象的位置while(iter!=mp.end()){}2、map的大小3、map的基本操作函数(只列举了几个)mp.clear();//删除所有元素mp.count();

2022-11-21 19:17:37 409

原创 7-6 天梯地图(写完这题我对于最小生成树和最短路的理解)

目前我写最小生成树问题涉及到的算法有(prim、kruskal),然后作业中遇到最短路问题我用的是dijkstra算法,我发现prim算法和dijkstra算法在代码格式上极为相似,以至于我思考了许久两种核心代码既然一样,为什么是两种问题,后来我发现两种代码虽然极为相似,但是最短路问题在初始化方面要求得更加细化,相较于(在写最短路时,把距离更新为无穷大,然后循环把与起点连接的点的距离更新,然后再进行n-1次循环进行更新点。的“距离最短”指的是一个点距离集合的最短,备选的最短是集合中所能有通路的点,

2022-11-20 21:58:10 476 2

原创 7-3 任务调度的合理性

如第四行2 1 2意思为想要完成第三个任务,需要先完成任务1 2。给定N个任务,然后N行依次为1..2..3...N任务。每一行第一个数代表有几个需要依赖的子任务。然后理解题意后,将题目抽象为拓扑排序即可。即完成给定的子任务才能完成本次任务。

2022-11-18 20:25:38 210

原创 7-4 公路村村通

prim函数体中,外层循环从1还是0开始都行,只不过第一次循环是确定第一个点并且更新通过第一个点下一个离集合s最近的一个点。从策略上看,prim算法是多次寻找权重最小的边,而kruskal算法先排序权重再寻找。所以在第一次循环时需要加上特判,防止判断无法连通出错。通过并查集然后排序权重从小到大,依次遍历即可。效率上看,kruskal的时间效率更高。

2022-11-18 14:43:54 327

原创 图的存储结构

图的邻接矩阵存储方式是用两个数组来表示图。一个一维数组存储图中顶点信息,一个二维数组存储图中的边或弧的信息。

2022-11-16 15:40:53 609

原创 试题 基础练习 FJ的字符串(蓝桥杯)

然后返回A到第二层,第二层加上char(n-1+'A'),然后递归后面的函数返回A。会发现,前者和后者的dfs函数返回的值是对称的。用循环实现,即找到规律,用三个字符串数组连接。用递逆向归实现,即递归到底时返回1。当n递归到第一层时,返回A。然后返回第三层“ABA”.......以此类推。

2022-11-15 21:52:44 94

原创 郑轻新生周赛(4)

通过将用三个数组,一个数组用于记录字母,一个用于记录数目,一个用于记录前两个数组和并后大小的位置。字母数量少的先输出,定义一个结构体,将字母与出现的次数绑定,然后排序输出即可。多实例,用两个数组,一个用于记录输入的值,一个用于记录值得个数。用前缀和将D的每段数目存储起来,然后用l,r来维护一端序列。

2022-11-15 17:55:48 191 2

原创 树——基础知识认知

线性表是一对一的关系,而树结构是一种一对多的关系。树:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一课非空树中:(1)有且仅有一个特定的称为跟(Root)的结点;(2)n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,....Tm,其中每一个集合本身有时一棵树,并且称为根的树(SubTree)树的定义其实就是我们在讲解栈时提到的递归方法。也就是在树的定义之中还用到了树的概念,这是一种比较新的定义方法。子树T1和子树T2就是根结点A的子树。

2022-09-20 16:31:54 315

原创 数据结构——串(基础知识)

例如:s=“happen”,t=“happy”,因为前四个字母均相等,而两串第五个字母(k值),字母e的ASCLL码是101,而字母y的ASCLL码是121,显然e

2022-09-16 12:31:07 2368 1

原创 栈与队列基础认知

类似于弹夹中的子弹一样先进去,却要后进来,而后进来的,反而可以先出来的数据结构---栈栈是限定仅在表尾进行插入和删除操作的线性表我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(Last In First Out)的线性表,简称LIFO结构理解栈的定义需要注意1.栈是一个线性表,也就是说,栈元素具有线性关系,即前驱后继关系,只不过是一种特殊的线性 表而已2.定义中说是在线性表的表尾进行插入和删除操作,这里表尾是指。

2022-09-11 23:38:46 451

原创 线性表基本概念及用法

零个或多个数据元素的有限序列若将线性表记为(a1,a2,a3.......ai,an)a1称为a2的直接前驱元素,a3称为a2的直接后继元素,线性表的个数n定义为线性表的长度,当n=0是,称为空集。ai,i称数据元素ai在线性表中的位序。在较为复杂的线性表中,一个数据元素可以由若干个数据项组成ADT 线性表(List)Data线性表的数据对象集合为{a1,a2,a3,.......an},每个元素的类型均为DataType。

2022-09-06 21:24:52 1940

原创 数据结构(抽象数据类型及算法概念)

自然语言、伪代码描述、流程图、源代码描述(算法给人看,程序给计算机)算法:是为了解决一个或一类问题而规定的一个确定、有限长的操作序列。简单地说,算法就是对问题求解过程的一种描述。定义抽象数据类型复数。...

2022-08-31 08:13:02 656

原创 初识数据结构

在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是。逻辑上可以不相邻的元素,可以借助指示元素存储地址的指针来表示元素之间的逻辑关系。,所有能输入到计算机的,并且能被计算机处理的符号的集合。根据元素的关键字直接计算出该元素的存储地址,又称哈希存储。数据类型是一个值得集合和定义在此集合上的一组操作的总称。具有相同特征的数据元素的集合,是数据的一个子集。指数据中具有独立意义的个体,是数据结构中讨论的。逻辑结构中相邻的元素在储存器中也相邻,如线性表。,数据元素是数据项的集合、..

2022-08-29 20:57:20 119

原创 代码对齐Uva1593

掌握vector、string、stringstream基本用法。

2022-08-19 22:32:24 56

原创 安迪的第一个字典(10815)

样例输入: Adventures in Disneyland Two blondes were going to Disneyland when they came to a fork in the road. The sign read: "Disneyland Left." So they went home.输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出。单 词不区分大小写。重点掌握set集合的作用,集合已从小到大排好且不包含重复元素,只需遍历即可。...

2022-08-17 00:12:48 39

原创 木块问题(Uva101)

从左到右有n个木块,编号为0~n-1,要求模拟以下4种操作(下面的a和b都是木块编 号)。move a onto b:把a和b上方的木块全部归位,然后把a摞在b上面。move a over b:把a上方的木块全部归位,然后把a放在b所在木块堆的顶部。pile a onto b:把b上方的木块全部归位,然后把a及上面的木块整体摞在b上面。pile a over b:把a及上面的木块整体摞在b所在木块堆的顶部。a和b在同一堆的指令是非法指令,应当忽略。理解本题,应仔细从主函数开始跟着思路理一遍。...

2022-08-16 22:29:52 153

原创 大理石在哪儿(Uva10474)

现有N个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回 答Q个问题。每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上 写着x。排序后的大理石从左到右编号为1~N。(在样例中,为了节约篇幅,所有大理石上 的数合并到一行,所有问题也合并到一行。程序仅为个人理解,警告问题额。...

2022-08-16 21:30:33 106

原创 算法竞赛中STL的介绍与使用

a.size()读取它的大小,a.resize()改变大小,a.push_back()向尾部添加元素,a.pop_back()删除尾部元素,vector是一个模板类,所以需要用vectora或者vectorb这样的方式来声明一 个vector。STL队列定义在头文件中,可以用“queues”方式声明一个队列,STL的queue头文件提供了队列,用“queues”方式定义,用push( )和 pop( )进行元素的入队和出队操作,front( )取队首元素(但不删除)集合与映射也是两个常用的容器。...

2022-08-16 09:58:54 212

原创 不同类数据间的转换

前言:c++保留了C语言的标准类型数据间的转换,如(类型名)数据,同时c++在保留这种用法 的同时还有另外一种用法 :类型名(数据),提倡在c++中后者的用法。#include<iostream>using namespace std;class complex{public:complex(){real=0;imag=0;}complex(double r){real =r;imag=0;}//转换构造函数complex(double r,double i){real = r

2022-05-01 15:34:33 655

原创 重载流插入运算符“<<“和提取流运算符“>>“

如果想用它们输出和输入自己声明的数据类型,必须对它们重载istream & operator >> (istream &,自定义类&);ostream & operator << (ostream &,自定义类&);这是重载函数的形式只能将重载“>>”和“<<”的函数作为友元函数,而不能作为成员函数,因为操作对象为cin/cout非complex类成员对象重载流插入运算符“<<”:

2022-05-01 09:17:11 962

空空如也

空空如也

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

TA关注的人

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