算法
文章平均质量分 63
算法原理或使用方法
Hama_ecco
这个作者很懒,什么都没留下…
展开
-
线段树(原数组的单点维护+区间查询)
线段树基本的概念,如果已经大概了解线段树是什么或者你对理论不感兴趣的就可以直接跳到步骤3、分步图解实现1、定义线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂原创 2022-05-05 11:16:06 · 555 阅读 · 1 评论 -
认识树状数组、树状数组的简单使用(原数组的单点修改和区间查询)
一、树状数组<1>、普通数组以普通数组为例:单点修改 时间复杂度为O(1),分段查询 时间复杂度为O(n)。以普通数组的前缀和为例:分段查询 时间复杂度为O(1),单点修改 时间复杂度为O(n)。(改一个值影响后面的前缀和)。<2>、树状数组1、原理如图,每个树状数组管理着 2的k次方个数字(此数字的二进制表达的末尾0的个数k)例如:d[6]=a[6]+a[5]110 2^1d[8]=a[1]+...+a[8]1000 2^32、询问若要询问原创 2022-04-29 10:39:16 · 208 阅读 · 0 评论