一,b树 b树(balance tree)和b+树应用在数据库索引,可以认为是m叉的多路平衡查找树,但是从理论上讲,二叉树查找速度和比较次数都是最小的,为什么不用二叉树呢? 因为我们要考虑磁盘IO的影响,它相对于内存来说是很慢的。数据库索引是存储在磁盘上的,当数据量大时,就不能把整个索引全部加载到内 ...
分类:
其他好文 时间:
2019-12-16 19:16:47
阅读次数:
52
笔试: 1、实现单链表的插入和删除 2、只遍历一次单链表,找出中间位置的元素 3、组织机构树查询 一面: 1、讲一下String,String是线程安全的吗?StringBuffer和StringBuildder哪个是线程安全的? 2、讲一下HashMap,HashMap允许null值吗?扩容是怎样 ...
分类:
其他好文 时间:
2019-11-03 10:59:28
阅读次数:
97
由于y=x,我们可以将点对称过来,以便(x,y)(x ...
分类:
其他好文 时间:
2019-10-07 11:28:19
阅读次数:
86
写出转移方程即可。 贡献值计算有通用方法:记录每一个颜色上一个位置,这个颜色只在上个位置到当前位置有贡献,为1,这个可以通过线段树做到。同样,dp值也可以用线段树查询,所以我们把他们同时丢到一颗线段树里面就行了。 cpp include include include include include ...
分类:
其他好文 时间:
2019-10-06 18:42:52
阅读次数:
93
前置知识:线段树,链式前向星,LCA,DFS序 树链剖分通常的操作: 1.x y 的路径上修改 2.x y 的路径上查询 3. 对于 x 的子树修改 4.对于 x 的子树查询。 一般还有换根操作。树剖也也可以做LCA。 树链剖分有两个DFS 这两个DFS就是把一棵树变成一个序列。 然后就可以用数据结 ...
分类:
其他好文 时间:
2019-10-03 16:12:30
阅读次数:
81
"bzoj" 先考虑离线做法,可以按深度离线,然后按照深度顺序加点,那么询问就可以变成在$dep_x+d$深度时进行子树查询.现在考虑一个点,它可以给所有它的祖先答案+1,但是如果有一个同色的点,那么在他们的$lca$处以及$lca$祖先只会有$1$的贡献,所以加入一个点就单点+1,加入一个同色点要 ...
分类:
其他好文 时间:
2019-09-16 23:55:04
阅读次数:
178
[TOC] 更新、更全的《数据结构与算法》的更新网站,更有python、go、人工智能教学等着你: 一、什么是二叉搜索树 首先让我们回顾之前说过的查找问题:上次我们之讲过了静态查找,这次我们将通过二叉搜索树实现动态查找。但是针对动态查找,数据该如何组织呢? 二叉搜索树(BST,Binary Sear ...
分类:
其他好文 时间:
2019-09-16 19:22:16
阅读次数:
118
XKC , the captain of the basketball team , is directing a train of nn team members. He makes all members stand in a row , and numbers them 1 \cdots n1 ...
分类:
其他好文 时间:
2019-09-09 19:45:42
阅读次数:
103
题意 给一个$n\times n$的螺旋矩阵,给出其中的$m$个点的值分别为各个点上数字的数位之和,给出$q$个询问,每次询问从$(x1,y1)$到$(x2,y2)$的子矩阵的和。 分析 用官方题解的方法$O(1)$推出点$(x,y)$上的值,将这$m$个点按$x$排序后依次按$y$建主席树,查询时 ...
分类:
其他好文 时间:
2019-09-01 23:39:57
阅读次数:
111
hash_map 底层是hash表,查询时间复杂度是O(1) map 底层是红黑树,查询时间复杂度是O(logn) 字符hash模板 进制哈希 首先设一个进制数base,并设一个模数mod 而哈希其实就是把一个数转化为一个值,这个值是base进制的,储存在哈希表中,注意一下在存入的时候取模一下即可 ...
分类:
其他好文 时间:
2019-09-01 11:08:48
阅读次数:
101