数据结构
文章平均质量分 70
Brokenrivers
这个作者很懒,什么都没留下…
展开
-
最近公共祖先LCA 倍增法
也就是二进制的形式,基于此,对于线性的过程,则可以通过2^x的跳跃实现log级别的复杂度。最暴力的LCA做法就是手动将两个节调整到同一高度,然后同时向上跳直到取到最近的公共祖先。倍增基于一个常识,任何一个数都能表示为2的幂之和的形式如。之后的跳转就只需通过从这个表中取值就行了。之前学习了Tanjan求LCA的解法,通过倍增预处理一个跳转表。...原创 2022-08-05 20:37:36 · 268 阅读 · 0 评论 -
简述树状数组及逆序数
树状数组求解逆序数,思路在注释。主要是离散化数组后,将数组元素当作树状数组下标利用树状数组每次统计比当前元素大有几个。将树状数组当成差分数组来看,修改区间和查询单点(差分的前缀和)树状数组可以解决大部分区间上面的修改以及查询的问题,例如。,换言之,线段树能解决的问题,树状数组大部分也可以。其修改和查询都是log级别的。树状数组的核心操作主要是。.........原创 2022-08-03 22:59:47 · 113 阅读 · 0 评论 -
3.20训练周记
这周课上主要讲了部分stl的基本操作,stl把数据结构封装起来,并提供了一些函数接口给我们调用实现数据结构的操作。其实stl上学期就接触了,这次再次学习stl我认为不应该再只局限于记住这些函数的用法,这些用法看似繁杂,实际都可以从命名和该数据结构的特性推出。我认为现在更应该的是去思考这些数据结构应当在什么时候使用,和一些只有在实践才能了解到的细节。如,之前用queue写广搜的时候,发现有些题老是爆内存,一直没想明白为什么,去查了相关资料才知道queue的pop只返回并“弹出”该元素,但是不释放这个位原创 2022-03-20 13:01:33 · 880 阅读 · 0 评论 -
线段树建立与维护
在学完基础算法和基本数据结构后算是真正的进入竞赛圈子了吧。最明显的感觉就是现在接触的算法和数据结构更加复杂和难以理解。虽然基础算法和数据结构还并没有非常熟练的使用和理解,但也必须先硬着头皮往前走。简述线段树:一种叶子节点是基本数据,其他节点为为其左右孩子的运算结果(如和积商等)的数据结构。比如要求一段数组在某区间上的和。最简单的方法就是循环遍历整个区间得到和。但是这种方时间复杂度相对高,为O(n),如果数组区间很大,很容易超时。但我们还学过一种算法,就是前缀和。这个算法通过O(n)的预处原创 2022-02-18 22:28:45 · 610 阅读 · 1 评论 -
二叉树遍历和创建过程分析
二叉树的遍历分三种情况:对这样一个二叉树来说1.先序遍历 A -> B -> C2.中序遍历 B -> A -> C3.后序遍历 B -> C -> A任何二叉树都可以看作这样的一个简单的模型,只是图内的节点对应的子树各不相同。其中A为根节点。对这样的二叉树,我们可以把遍历整个二叉树看作一个主问题,而遍历时遍历每一个子节点对应的子树的过程看作一个子问题。比如我要遍历这颗二叉树。我们先从A出发,遍历到B,此时B为A的左子树的根节点.原创 2022-02-13 01:03:57 · 563 阅读 · 0 评论 -
字符串匹配—BF算法和KMP算法
BF算法其思路非常简单也就是,对这样两个字符串(称短的为模板串,长的为主串):让主串和模板串的每个字符逐个匹配,如果从这个位置开始匹配不成功,则从主串的下一个字符开始匹配,直到遍历完主串。可以得到这份代码#include<iostream>#include<stdlib.h>#include<string>using namespace std;int bf(string a, string b) { int la = a.le原创 2022-02-08 03:16:51 · 1485 阅读 · 0 评论 -
栈与队列基本操作
一.栈1.顺序栈操作:注:栈是一种只在头部进行操作的数据结构,不需要用到中间插入和删除,因此一般日常生活中用顺序表的形式来表示栈,操作可能会更方便。① 顺序栈的创建(初始化):...原创 2022-01-30 19:35:38 · 3963 阅读 · 0 评论 -
c++链表基本操作
单链表创建:struct linklist { int data; linklist* next;};linklist* creat(int n) {//创建含有n个节点的链表 linklist* head; linklist* node; linklist* end; head = new linklist;//申请表头空间 end = head; head->data = n; //可以选择从表头开始存放所需数据,也可以选择独立表头; //这里选择独立表头,并且表头原创 2022-01-22 21:38:47 · 7722 阅读 · 0 评论