随笔分类 - 数据结构
摘要:今天介绍一种新的数据结构:Hash 以及可爱的新STL:set 首先 我们来介绍一下set 什么是set?有点像平衡树 那么什么又是平衡树呢?就是我之前讲过的二叉查找树的优化版本 嗯 我们可以把set理解成一个含有迭代器的类似数组/vector的结构 当然 它有几个特点: 1.内部自动排序 跟map
阅读全文
摘要:今天还是在学map! 先来看一下题面 P5250 【深基17.例5】木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作: 进货,格式1 Leng
阅读全文
摘要:今天学了一种新的STL(笑) 先看题目 P2814 家谱 题目背景 现代的人对于本家族血统越来越感兴趣。 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先。 输入格式 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用 #name
阅读全文
摘要:学习第二种并查集! 下面我们介绍第二种并查集:“扩展域”并查集 听上去有点玄乎 但是可以从别的角度出发 我们平时做的都是单个集合的并查集 在这里 我们会把每个变量的每个性质剖离作为另外的n个变量 下面来看题目 P2024 [NOI2001] 食物链 题目描述 动物王国中有三类动物 \(A,B,C\)
阅读全文
摘要:今天学习提高版的并查集 洛谷200题纪念! 首先我们看题目 P1196 [NOI2002] 银河英雄传说 题目背景 公元 \(5801\) 年,地球居民迁至金牛座 \(\alpha\) 第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。 宇宙历 \(799\) 年,
阅读全文
摘要:今天开始学习并查集 什么是并查集呢?顾名思义,就是动态维护一个方便进行合并和查找的集合 我们采用的是树状结构 也就是说,对于一开始的每个元素 它的爸爸是它自己 然后在输入两个元素的从属关系的时候,通过路径压缩,把它的爸爸直接连到根节点 因为我们只关心这个元素在这棵树里的从属关系,因此它的位置无关紧要
阅读全文
摘要:二叉树题单的最后一道题 没有什么硬性知识 就是递归的简单应用 P1185 绘制二叉树 题目描述 二叉树是一种基本的数据结构,它要么为空,要么由根结点,左子树和右子树组成,同时左子树和右子树也分别是二叉树。 当一颗二叉树高度为 \(m-1\) 时,共有 \(m\) 层。若一棵二叉树除第 \(m\) 层
阅读全文
摘要:这道题好巧 遍历问题 题目描述 我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的
阅读全文
摘要:其实是昨天的代码哈哈 这道题向我们展现了前序、中序和后序知二求一的性质 同时,我们应该注意的是,只知道前序和后序,这样的树不是唯一确定的 下面看题目 [NOIP 2001 普及组] 求先序排列 题目描述 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节
阅读全文
摘要:今天接着学二叉树 说实在话当我看到这题的时候 诶?这给我干哪儿来了 这还是国内吗 然后就翻书学了一种新的数据结构 二叉查找树(又称二叉搜索树) 当然这个用理解记忆就可以了 后面会用平衡树进行完善 因为二叉查找树在退化成链的时候可能会变成O(\(n^2\)) 我们先看一下题目 【深基16.例7】普通二
阅读全文
摘要:这个主要是二叉树的大杂烩 [JLOI2009] 二叉树问题 题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:\(4\) 宽度:\(4\) 结点 8 和 6 之间的距离:\(8\) 结点 7 和 6 之间的距离:\(3\) 其中宽度表示二叉树上同一层最多的结点个数,节点 \(u
阅读全文
摘要:今天开始学习二叉树 先看第一道题 二叉树的遍历 题目描述 有一个 \(n(n \le 10^6)\) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 \(n\)),建立一棵二叉树(根节点的编号为 \(1\)),如果是叶子结点,则输入 0 0。 建好树这棵二叉树之后,依次求出它的前序、中序、后
阅读全文
摘要:今天把链表学完了! 明天复习一下树的相关知识 做点题目 后续就图论DP数据结构搜索进阶几个主线摸索 [HNOI2002] 营业额统计 题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出了公司的账本,账本上记录了公
阅读全文
摘要:学数据结构的第n天! 今天入门链表 之前初赛考完马上忘掉的东西 这道题就是链表板子题 队列安排 题目描述 一个学校里老师要将班上 \(N\) 个同学排成一列,同学被编号为 \(1\sim N\),他采取如下的方法: 先将 \(1\) 号同学安排进队列,这时队列中只有他一个人; \(2\sim N\)
阅读全文
摘要:今天还是学数据结构的一天 滑动窗口 /【模板】单调队列 题目描述 有一个长为 \(n\) 的序列 \(a\),以及一个大小为 \(k\) 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如,对于序列 \([1,3,-1,-3,5,3,6,7]\) 以及
阅读全文
摘要:本题其实来自lyd老师的《算法竞赛进阶指南》 但是纸上得来终觉浅,绝知此事要躬行嘛 就把做题思路回顾在这里噜 P2201 数列编辑器 题目描述 小 Z 是一个爱好数学的小学生。最近,他在研究一些关于整数数列的性质。 为了方便他的研究,小Z希望实现一个叫做“Open Continuous Lines
阅读全文
摘要:今天开始学一点数据结构 (右下角小火箭可以回到页首) 大家应该都能看出来这题应该用的是单调栈 我们先来看看单调栈的模版 P5788 【模板】单调栈 题目背景 模板题,无背景。 2019.12.12 更新数据,放宽时限,现在不再卡常了。 题目描述 给出项数为 \(n\) 的整数数列 \(a_{1 \d
阅读全文