![](https://img-blog.csdnimg.cn/5b395acf87b9464b815a4659c5ef4cf7.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与STL
文章平均质量分 83
数据结构与STL
来自八中的小鹿
因为热爱,所以坚持
展开
-
卫星地图——MAP(c++)
一张矩形的卫星地图,有M行N列。行列中的0表示空地,1表示有建筑。有3种类型的建筑:L型: 仅在一行上占据连续的若干个格子,长度至少为2,至多为NC型:仅在一列上占据连续的若干个格子,长度至少为2,至多为MS型:仅占据单个格子。在同一行上或者同一列上可以出现多个建筑。不同的建筑不会相邻,相邻是指上,下,左,右,以及左上,左下,右上,右下等八个方向。求出不同类型的建筑的数量及长度。原创 2023-02-01 20:14:25 · 1277 阅读 · 0 评论 -
寒假集训一期(1)——思维训练
本题运用到了DP的状态转移思想,和方向数组来实现,思维上难度较大。原创 2023-01-12 09:30:27 · 137 阅读 · 0 评论 -
【图】最小生成树问题——prim普利姆算法和kruskal克洛斯卡尔算法
图是一种常见的高级数据结构,其中最小生成树也是图中的一个重要问题板块,我们先来说一下几个基本概念,懂的可以直接跳过:1、连通图:没有方向且每两点之间都有一条线段直接连接。2、强连通图:有方向且每两点之间都有两条线段双向连接。3、生成树:每个顶点至少有一条线段与它连接且所有顶点同处一棵树中。4、最小生成树:权值之和最小的生成树。我们今天要解决的问题是如何构造一棵最小生成树,我们先看克洛斯卡尔kruskal算法。原创 2022-12-13 11:11:03 · 189 阅读 · 0 评论 -
c++【线段树】详解 & 基本操作
这时我们关注红色的字体,我们发现,括号里的第一项a[x-y+1]中x就是当前树的下标,而他减去的红色字体,就是左边第二行得出的二进制数从右往左看第一个1和他之后的0所组成的数字,就如:6的二进制是110,从右往左看第一个1在第二位,所以我们只看后两位,得出10,10的十进制为4,所以减去4。节点的下标(因为是数组)是他的父节点的1/2,即Lson=root原创 2022-12-12 14:57:05 · 516 阅读 · 0 评论 -
寒假集训一期(4)—— c++【STL栈和队列】基本操作函数和模板习题
有两种方法://定义类型为vector的vector for(int i = 0;i ++) {//实现二维 }//直接定义二维int//直接定义二维这道题可以让我们更深刻的理解栈的基本概念。遇到这种题目,我们可以利用栈的概念解决,首先先找准目前没有进过栈的第一个数,然后将目前未进栈元素到我们刚刚找的那个元素全部依次进栈,然后查看出栈顺序是否合法,依次模拟,即可得出结果。原创 2022-11-23 11:31:50 · 1295 阅读 · 0 评论 -
二叉搜索树 详解,中序遍历伪代码 ,AVL原理讲解【c++详解】(含代码)
二叉查找树的基本操作和复杂度分析,AVL树原理讲解原创 2022-11-13 11:37:35 · 1181 阅读 · 0 评论 -
哈夫曼编码(1)哈夫曼编码的基本概念及应用【c++】和哈夫曼树算法的基本思想
哈夫曼算法先是定义多个子树,有多少个字符就定义多少个树,这些树刚开始时都存于一个集合中,每一步把当前森林中频率最小的两棵子树合并为一棵子树 ,原始树作为子节点或子树,他的父亲的权值就是两个子节点的权值和,这可子树只能是二叉树,这一棵新树也存放与集合中,并代替掉了刚刚的两棵子树,这棵新树的频率就是那两棵子树的频率和…刚才说了,我们要尽可能让哈夫曼编码的值小,这也是为什么要用最小的权值子树作为子树,这样可以让深度越深的字符权值越小,那么,哈夫曼编码的计算过程为:每个字符权值*长度之和。下面是此树的构造过程。原创 2022-11-11 11:21:07 · 1856 阅读 · 0 评论 -
映射map的简单应用
map原创 2022-11-09 21:03:20 · 190 阅读 · 0 评论 -
class和struct浅谈
class和struct原创 2022-11-05 18:45:00 · 9329 阅读 · 6 评论