数据结构与算法
文章平均质量分 78
karshey
平平无奇打工人。
展开
-
【数据结构】线段树笔记2
【数据结构】零基础线段树笔记1参考和引用:线段树讲解 本博客主要是这个的笔记。线段树相关知识线段树的结构N的原数组,要4N的大小去存储线段树原因:看线段树讲解吧。代码相关更新当前节点 push_up是更新当前节点的操作。有两种写法:如果是维护区间最大值,则区间的最大值是max(左区间.maxn,右区间.maxn);如果是维护区间和值,则直接加和//维护区间最大值void push_up1(int root){ nodes[root].maxn=max(nodes[roo原创 2022-01-10 20:23:18 · 345 阅读 · 0 评论 -
【数据结构】零基础线段树笔记1
是自学的笔记。引用和参考:关于线段树B站视频:【数据结构】线段树(Segment Tree) 灯神讲得好!!引入假设我们现在有一个非常大的数组,我们要反复地做两个操作:求某个区间的和。O(n)修改数组中某个值。O(1)如果要做很多次,时间复杂度会很高。我们怎么想办法降低求某个区间的和的复杂度呢?我们建立一个和原数组a一样大的数组s,s是a的前缀和。如果想求[L,R]这个区间的和,只需要求S[R]-S[L-1]即可。 O(1)但是如果想要更新数组的值,又变复杂了。O(n)这两种方原创 2022-01-10 16:14:11 · 330 阅读 · 0 评论 -
【数据结构】零基础树状数组笔记
参考和引用树状数组学习笔记树状数组 数据结构详解与模板(可能是最详细的了)树状数组(简单介绍)树状数组小结AcWing 241. 楼兰图腾 的题解树状数组的作用树状数组,也叫做二叉索引树,或Fenwick树。可以高效实现两个操作:数组前缀和的查询单点更新——某个点增加/减少x(是改变多少)时间复杂度朴素算法单点修改:O(1)区间查询:O(n)使用树状数组单点修改:O(logn)区间查询:O(logn)容易求前缀和,也容易求区间和,如:已知nums=[1,2,3,4,原创 2022-01-09 21:55:54 · 397 阅读 · 0 评论