- 博客(5)
- 资源 (5)
- 收藏
- 关注
原创 数据结构之伸展树(二)
之前写了一篇Splay的博客【数据结构之伸展树(一)】,只是说了一下了它的原理及核心的伸展操作,后来发现具体在哪里应用splay我还是分不大清。事实上,Splay常常用于实现可分裂与合并的序列,举个板栗,比如给你一个数组,将数组从某一个地方分成俩数组,或者给你俩数组,将他们直接连接成一个数组——这就是Splay的强项就像上次写的伸展树博客里面说的,要处理一个区间[L,R]只需要将L-1伸展...
2018-09-17 14:22:11 276
原创 数据结构之求解RMQ问题
RMQ,即range minimum queuy,范围最小值查询,一般朴素算法查询单个区间是O(n),查询m个就是O(m*n) ,这里要说的Sparse-Table算法,需要O(nlog n)的预处理,O(1)的单次查询,在查询次数很多的时候就能体现更好的优越性。而且,最重要的是这个算法写法简单,理解方便~~令d(i,j)表示从i开头的,长度为2^j(本文中^都表示次方而不是异或)的区间内的最...
2018-09-12 19:35:57 297
原创 数据结构之Treap、RankTree(名次树)
一、Treap简单地说,Treap是一棵拥有键值、优先级两种权值的树。对于键值而言,它是BST,对于优先级而言,它是堆。它的插入、删除和查找的期望时间复杂度均为O(log n)它在插入的时候,随机生成一个优先级,首先根据键值以BST的方式插入到Treap里,然后通过BST的旋转来维护优先级堆的性质,而旋转本身是不会破坏BST的性质的,这就保证了插入完成之后,仍然是一棵Treap其它的没...
2018-09-09 19:47:47 1579 1
原创 数据结构之树状数组(BIT)
Binary index tree,二叉索引树,又叫树状数组,用于动态连续查询为你。给定一个数组A1、A2、A3......An,树状数组支持以下两种操作:add(x,d):让A[x]增加d,时间复杂度O(log n) sum(x):求A前x个元素的和,时间复杂度O(log n),有了前缀和就可以O(1)地求任意区间的和了在说树状数组前,我们先了解一下lowbit(x)。对于正整数x,我们...
2018-09-06 14:37:51 711
原创 git修改最近一次commit的内容
git commit --amend -m "xxxxxx" //修改最近一次commit描述为引号里面内容git push -f origin master //如果已经push了,可以用这个覆盖服务端信息
2018-09-05 21:09:04 1163
Java连接mongoDB需要的jar包(3.9.1)
2018-12-12
Java连接mongoDB需要的jar包
2018-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人