随笔分类 -  数据结构

摘要:好几天没更新了 这几天还是在做线段树的题目 后面,可能做点DP? 这块不是很熟的样子 P2184 贪婪大陆 题目背景 面对蚂蚁们的疯狂进攻,小 FF 的 Tower defence 宣告失败……人类被蚂蚁们逼到了 Greed Island 上的一个海湾。现在,小 FF 的后方是一望无际的大海,前方是 阅读全文
posted @ 2025-05-22 08:25 elainafan 阅读(20) 评论(0) 推荐(0)
摘要:今天还是抽了点时间写题 P1253 扶苏的问题 题目描述 给定一个长度为 \(n\) 的序列 \(a\),要求支持如下三个操作: 给定区间 \([l, r]\),将区间内每个数都修改为 \(x\)。 给定区间 \([l, r]\),将区间内每个数都加上 \(x\)。 给定区间 \([l, r]\), 阅读全文
posted @ 2025-05-20 00:15 elainafan 阅读(42) 评论(0) 推荐(0)
摘要:今天,我们来学习线段树 某种意义上这确实算是数据结构里非常优美(甚至可以说是最优美?)的数据结构了 简约的分形美,比树状数组直观很多,处理范围也比较广 具体原理我就不讲了,你只需要知道 这棵树是一棵除了叶节点其他层都是完全二叉树的树 所以,我们在开数组的时候要注意,需要开\(4 \times n\) 阅读全文
posted @ 2025-05-16 00:08 elainafan 阅读(42) 评论(0) 推荐(0)
摘要:期中刚考完就过来接着学算法啦 毕竟oop那堆东西基本上放到开发工程效率提高才比较明显,放到这里其实就不大行了 那么,我们今天还是看一道树状数组的题目,明天开始学习线段树 奇怪。这些东西当年我不是都会吗 P6225 [eJOI 2019] 异或橙子 题目描述 Janez 喜欢橙子!他制造了一个橙子扫描 阅读全文
posted @ 2025-05-14 23:37 elainafan 阅读(18) 评论(0) 推荐(0)
摘要:好久没有学新算法了! 五一刚好有空 虽然cf那边也要补题,但是不学新算法终究思路拓不开吧 今天复习了一下几年前学的树状数组 我们从一道题开始: P3374 【模板】树状数组 1 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某一个数加上 \(x\) 求出某区间每一个数的和 输入格式 第一 阅读全文
posted @ 2025-05-01 00:31 elainafan 阅读(45) 评论(0) 推荐(0)
摘要:今天介绍一种新的数据结构:Hash 以及可爱的新STL:set 首先 我们来介绍一下set 什么是set?有点像平衡树 那么什么又是平衡树呢?就是我之前讲过的二叉查找树的优化版本 嗯 我们可以把set理解成一个含有迭代器的类似数组/vector的结构 当然 它有几个特点: 1.内部自动排序 跟map 阅读全文
posted @ 2025-02-16 21:23 elainafan 阅读(31) 评论(0) 推荐(0)
摘要:今天还是在学map! 先来看一下题面 P5250 【深基17.例5】木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的。作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存。有不超过 100000 条的操作: 进货,格式1 Leng 阅读全文
posted @ 2025-02-16 16:22 elainafan 阅读(58) 评论(0) 推荐(0)
摘要:今天学了一种新的STL(笑) 先看题目 P2814 家谱 题目背景 现代的人对于本家族血统越来越感兴趣。 题目描述 给出充足的父子关系,请你编写程序找到某个人的最早的祖先。 输入格式 输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用 #name 阅读全文
posted @ 2025-02-16 09:01 elainafan 阅读(32) 评论(0) 推荐(0)
摘要:学习第二种并查集! 下面我们介绍第二种并查集:“扩展域”并查集 听上去有点玄乎 但是可以从别的角度出发 我们平时做的都是单个集合的并查集 在这里 我们会把每个变量的每个性质剖离作为另外的n个变量 下面来看题目 P2024 [NOI2001] 食物链 题目描述 动物王国中有三类动物 \(A,B,C\) 阅读全文
posted @ 2025-02-12 21:18 elainafan 阅读(104) 评论(0) 推荐(0)
摘要:今天学习提高版的并查集 洛谷200题纪念! 首先我们看题目 P1196 [NOI2002] 银河英雄传说 题目背景 公元 \(5801\) 年,地球居民迁至金牛座 \(\alpha\) 第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。 宇宙历 \(799\) 年, 阅读全文
posted @ 2025-02-12 20:51 elainafan 阅读(43) 评论(0) 推荐(0)
摘要:今天开始学习并查集 什么是并查集呢?顾名思义,就是动态维护一个方便进行合并和查找的集合 我们采用的是树状结构 也就是说,对于一开始的每个元素 它的爸爸是它自己 然后在输入两个元素的从属关系的时候,通过路径压缩,把它的爸爸直接连到根节点 因为我们只关心这个元素在这棵树里的从属关系,因此它的位置无关紧要 阅读全文
posted @ 2025-02-12 00:24 elainafan 阅读(53) 评论(0) 推荐(0)
摘要:二叉树题单的最后一道题 没有什么硬性知识 就是递归的简单应用 P1185 绘制二叉树 题目描述 二叉树是一种基本的数据结构,它要么为空,要么由根结点,左子树和右子树组成,同时左子树和右子树也分别是二叉树。 当一颗二叉树高度为 \(m-1\) 时,共有 \(m\) 层。若一棵二叉树除第 \(m\) 层 阅读全文
posted @ 2025-02-12 00:01 elainafan 阅读(43) 评论(0) 推荐(0)
摘要:这道题好巧 遍历问题 题目描述 我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的 阅读全文
posted @ 2025-02-11 00:35 elainafan 阅读(37) 评论(0) 推荐(0)
摘要:其实是昨天的代码哈哈 这道题向我们展现了前序、中序和后序知二求一的性质 同时,我们应该注意的是,只知道前序和后序,这样的树不是唯一确定的 下面看题目 [NOIP 2001 普及组] 求先序排列 题目描述 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节 阅读全文
posted @ 2025-02-11 00:12 elainafan 阅读(66) 评论(0) 推荐(0)
摘要:今天接着学二叉树 说实在话当我看到这题的时候 诶?这给我干哪儿来了 这还是国内吗 然后就翻书学了一种新的数据结构 二叉查找树(又称二叉搜索树) 当然这个用理解记忆就可以了 后面会用平衡树进行完善 因为二叉查找树在退化成链的时候可能会变成O(\(n^2\)) 我们先看一下题目 【深基16.例7】普通二 阅读全文
posted @ 2025-02-10 19:57 elainafan 阅读(111) 评论(0) 推荐(0)
摘要:这个主要是二叉树的大杂烩 [JLOI2009] 二叉树问题 题目描述 如下图所示的一棵二叉树的深度、宽度及结点间距离分别为: 深度:\(4\) 宽度:\(4\) 结点 8 和 6 之间的距离:\(8\) 结点 7 和 6 之间的距离:\(3\) 其中宽度表示二叉树上同一层最多的结点个数,节点 \(u 阅读全文
posted @ 2025-02-09 23:45 elainafan 阅读(93) 评论(0) 推荐(0)
摘要:今天开始学习二叉树 先看第一道题 二叉树的遍历 题目描述 有一个 \(n(n \le 10^6)\) 个结点的二叉树。给出每个结点的两个子结点编号(均不超过 \(n\)),建立一棵二叉树(根节点的编号为 \(1\)),如果是叶子结点,则输入 0 0。 建好树这棵二叉树之后,依次求出它的前序、中序、后 阅读全文
posted @ 2025-02-09 18:31 elainafan 阅读(166) 评论(0) 推荐(0)
摘要:今天把链表学完了! 明天复习一下树的相关知识 做点题目 后续就图论DP数据结构搜索进阶几个主线摸索 [HNOI2002] 营业额统计 题目描述 Tiger 最近被公司升任为营业部经理,他上任后接受公司交给的第一项任务便是统计并分析公司成立以来的营业情况。 Tiger 拿出了公司的账本,账本上记录了公 阅读全文
posted @ 2025-02-08 12:48 elainafan 阅读(17) 评论(0) 推荐(0)
摘要:学数据结构的第n天! 今天入门链表 之前初赛考完马上忘掉的东西 这道题就是链表板子题 队列安排 题目描述 一个学校里老师要将班上 \(N\) 个同学排成一列,同学被编号为 \(1\sim N\),他采取如下的方法: 先将 \(1\) 号同学安排进队列,这时队列中只有他一个人; \(2\sim N\) 阅读全文
posted @ 2025-02-07 11:27 elainafan 阅读(122) 评论(0) 推荐(0)
摘要:今天还是学数据结构的一天 滑动窗口 /【模板】单调队列 题目描述 有一个长为 \(n\) 的序列 \(a\),以及一个大小为 \(k\) 的窗口。现在这个从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。 例如,对于序列 \([1,3,-1,-3,5,3,6,7]\) 以及 阅读全文
posted @ 2025-02-03 23:53 elainafan 阅读(61) 评论(0) 推荐(0)