算法竞赛
文章平均质量分 97
Antonio915
这个作者很懒,什么都没留下…
展开
-
【高级数据结构】树状数组
树状数组(BinaryIndexedTree,BIT)(Binary Indexed Tree,BIT)(BinaryIndexedTree,BIT)是利用数的二进制特征进行检索的一种树状的结构。如何利用二分的思想高效地求前缀和?如图4.74.74.7所示, 以AAA =[a1,=[a_1,=[a1,a2a_2a2 ,a3a_3a3…a8]a_8]a8]为例,将二叉树的结构画成树状。这幅图是树状数组的核心,理解了它,就能明白树状数组的一切操作。图4.74.74.7圆圈中标记有数字的节点,存储的是称原创 2024-09-18 20:54:10 · 467 阅读 · 0 评论 -
【高级数据结构】并查集
前面讲解了并查集的基本应用—一处理集合问题。在这些基本应用中,点之间只有简单的归属关系,而没有权值。如果在点之间加上权值,并查集的应用会更广泛。如果读者联想到树这种数据结构,会发现并查集实际上是在维护若干棵树。并查集的合并和查询优化,实际上是在改变树的形状,把原来“细长”的,操作低效的大量“小树”,变为“粗短”的、操作高效的少量“大树”。如果在原来的“小树”上,点之间有权值,那么经过并查集的优化变成“大树”后,这些权值的操作也变得高效了。定义一个权值数组dd[]d,把节点iii。原创 2024-09-18 13:33:45 · 621 阅读 · 0 评论