
数据结构笔记
文章平均质量分 95
无名蒟蒻
苟利国家生死以,岂因祸福避趋之
展开
-
树链
树链剖分(heavy path decomposition,轻重路径剖分),我个人认为,相比起称之为一种“算法”,更像是一种处理树的相关问题时的一种方法,技巧。 其实,真正的树链剖分,应该是套个线段树进行维护的。不过,那个我并不会。所以这里写的是“树链”,真实面目其实应该是某种启发式合并。原创 2017-08-15 13:40:22 · 658 阅读 · 0 评论 -
树状数组模板
树状数组是一种常用的数据结构,可以方便的单点修改、区间求和。顾名思义,所谓树状数组,就是像树一样的数组。只不过这棵树有点“偏”。如图所示。(图中白色的是原数组,红色的是树状数组。)可以看到,每个红色结点的“管辖”范围是不同的,通过几条边与几个儿子连着。有的结点只管辖自己对应的数组那个下标的值(例如c[1],c[3],c[5],c[7]...),有的结点却管辖多个子结点的值。interesting!原创 2016-08-07 11:10:58 · 328 阅读 · 0 评论 -
Winner Tree-胜者树
胜者树是一种数据结构,特点如下:它是一棵完全二叉树。也就是说,除最后一层外,每一层上的节点数均达到最大值;在最后一层上只缺少右边的若干结点。这棵树的所有叶子结点是原始数据(见下文样例)。对于所有非叶子结点,取两个儿子中更优秀的值,就是父亲结点的值,故名胜者树。由于胜者树是完全二叉树,因此如果把根结点编号为1,第二层的结点分别是2、3,第三层是4、5、6、7……那么我们就能发现:每一个非叶子结点的左原创 2016-08-07 11:08:50 · 1810 阅读 · 0 评论 -
单调队列
本文对一种实用的数据结构——单调队列作了简要介绍,概括了一些用法和注意事项,并通过模拟其运作流程对其特点进行了分析。原创 2017-08-05 16:12:03 · 480 阅读 · 0 评论 -
Treap
Treap 是一种效率较高、易于编写的平衡二叉查找树,和 splay 一样受到广大竞赛选手的青睐。原创 2017-08-13 16:09:45 · 413 阅读 · 0 评论