
数据结构与算法
文章平均质量分 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 · 375 阅读 · 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 · 367 阅读 · 0 评论 -
【数据结构】零基础树状数组笔记
参考和引用 树状数组学习笔记 树状数组 数据结构详解与模板(可能是最详细的了) 树状数组(简单介绍) 树状数组小结 AcWing 241. 楼兰图腾 的题解 树状数组的作用 树状数组,也叫做二叉索引树,或Fenwick树。 可以高效实现两个操作: 数组前缀和的查询 单点更新——某个点增加/减少x(是改变多少) 时间复杂度 朴素算法 单点修改:O(1) 区间查询:O(n) 使用树状数组 单点修改:O(logn) 区间查询:O(logn) 容易求前缀和,也容易求区间和,如: 已知nums=[1,2,3,4,原创 2022-01-09 21:55:54 · 447 阅读 · 0 评论