随笔分类 -  数据结构

摘要:##树状数组简介 如果有哪一种数据结构可以支持区间/单点和的更新和查询,一个显而易见的答案就是万能的线段树。但是线段树虽然能支持很多的区间问题,但是代码量有些长。如果我们只是单纯地为了维护区间和其实并不用去专门构建一棵线段树。树状数组作为一种更加简单的,可以维护区间和的数据结构应运而生。 ##树状数 阅读全文
posted @ 2021-07-26 14:58 菜鸡mk 阅读(224) 评论(0) 推荐(1)
摘要:前置知识 二叉树 正篇 首先先来一个问题:给出一个长度为n的序列和m个操作,操作分别是: 1. 单点修改 2. 单点查询 3. 区间加减 4. 区间查询和 "模板题出处" 最简单的做法就是在数组上暴力for, 这样的话单点修改和查询的时间复杂度是$O(1)$, 区间加减和区间查询的复杂度是$O(n) 阅读全文
posted @ 2020-04-08 23:31 菜鸡mk 阅读(115) 评论(0) 推荐(0)
摘要:前置知识 可持久化数组 简介 先来一道模板题: "可持久化并查集" 大致意思就是要你写一个数据结构,支持 1. 合并a,b所在集合 2. 退回到第k次操作之后的状态 3. 查询a和b是不是在同一个集合里面 可以看到,除去第二个操作以外普通的并查集就可以解决 普通并查集一般是基于数组的,而可持久化并查 阅读全文
posted @ 2020-03-29 03:02 菜鸡mk 阅读(471) 评论(0) 推荐(1)
摘要:前置知识 线段树,离散化 名字的来历 如图所示,因为 黄嘉泰→HJT→某一名president名字的缩写,所以得名主席树 维护什么 "主席树模板题" 在这题里面我们要维护区间第k大 区间第k大,如果我们把单个区间拎出来直接排序的话时间复杂度是O(mnlogn),肯定是会T飞的,所以这种做法可以不不用 阅读全文
posted @ 2020-03-24 19:22 菜鸡mk 阅读(342) 评论(0) 推荐(0)
摘要:关于珂朵莉 こんなにも、たくさんの幸せをあの人に分けてもらった だから、きっと 今の、私は 誰が何と言おうと 世界一、 幸せな女の子だ ————クトリ 美图欣赏: (图片来源:萌娘百科) "中国珂学院" 好了好了说正事 关于这奇怪的名字 本来是起源于 "CF896C Willem, Chtholly 阅读全文
posted @ 2020-03-11 11:51 菜鸡mk 阅读(1010) 评论(0) 推荐(1)
摘要:~~其实pb_ds里面内置了可并堆~~ 相信大多数人都知道c++提供了强大的STL, 并且STL里面有一个很好用的priority_queue可以用来充当堆的功能。但是由于STL的过度封装,导致priority_queue无法高效地完成堆和堆之间的合并(一个一个push可不叫高效)。如果题目中涉及到 阅读全文
posted @ 2020-02-28 17:08 菜鸡mk 阅读(408) 评论(0) 推荐(0)
摘要:~~某神犇:树链剖分什么垃圾,能做的LCT都能做,不能做的LCT也能做~~ 前置条件: 线段树,(都会线段树了应该知道什么是树吧) 前言 现在考虑一棵树,每个节点都有一个点权,要求给x到y路径上的点都加上k,这个问题可以用树上差分很简单地在O(m+n)的复杂度内解决。再考虑一个问题,要求查找树上x到 阅读全文
posted @ 2020-02-24 00:11 菜鸡mk 阅读(294) 评论(0) 推荐(0)