- 博客(13)
- 收藏
- 关注
原创 ST表
对于动态区间的的查询我们可以用线段树来维护,但是线段树的代码是非常多的,对于静态区间的区间查询我们用线段树有点大炮打蚊子的感觉,对于普通的区间查询我们可以用树状数组(比如区间和等)和ST表(比如区间最大值等)来维护,这里我们来讲一下ST表。什么叫可重复贡献呢,通俗的来说,现在有两个区间a和b(不管有没有交集),他们的最大值分别为c和d,那么我们想要得到a和b的最大值是不是max(c,d)即可?最上面的是需要维护的区间,下面分别按照2^0,2^1,2^2,2^3的长度将所有片段的最大值存起来。
2025-07-24 18:17:04
133
原创 生成最小树-prim
该算法实际是一个贪心算法,就是先选出一个节点当树,然后找到距离树最近的节点(我们只在原图中和选出来的生成树直接连接的),更新dist中的最短距离,这个操作来上n次就可以把所有的节点连接在一起了。
2025-07-10 21:21:06
118
原创 引用
这里的a是我们定义的一个变量,b是对a的引用,没有开辟新的空间,只是a的空间的别名而已,我们不光可以使用a来进行引用,由于a和b的地址是一样的,所以a和b实际是等价的,所以我们同样可以使用b来进行引用操作,就如同。引用不是定义一个变量,而是给已经存在的变量取了一个别名而已,是不会开辟新的空间发,它和它引用的对象共用同一块内存空间,其语法为。3)引用一旦引用一个实体,便再不能引用其他实体了。引用在实践中主要是引用传参和引用做返回值减少拷贝。1)引用在定义的时候必须初始化。2)一个变量可以有多个引用。
2025-01-12 11:26:08
303
原创 排序
排序有很多方法,常见的有两类(1)比较排序(2)非比较排序而比较排序又分为(1)插入排序(2)选择排序(3)交换排序(4)归并排序分为直接插入排序和希尔排序分为直接选择和堆排序分为冒泡排序和快速排序有计数排序。
2025-01-12 11:25:06
1568
原创 数据结构入门
这也导致了插入和删除数据的效率低下,而且其在扩容时会二倍扩容,这也就导致了空间的浪费,但是顺序表也有一定的优点,其查找数据可以直接使用下标进行查找,非常方便,且其CPU缓存利用率高,所以顺序表的使用场景一般在需要元素高效储存和频繁访问的领域。在计算机的内存中也有栈,但是我们所说的栈和它有所不同,内存中的栈只是一块特殊的内存区域,用于储存函数调用时的相关信息,如局部变量, 函数参数,返回地址等,由系统自动管理;接着在判断原队列是否为空队列,pq指向的是队列的队头,若为空队列,则让队头队尾等于刚刚申请的结点;
2025-01-12 11:24:27
1876
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人