摘要:
操作 1 :把某个节点 x 的点权增加 a 。操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 //点修改+树修改,(点->根)链查询 #include<bits/stdc++.h> #define ll long long 阅读全文
摘要:
对权值作为维护对象而开的线段树,即每个点存的是区间内对应数字的某种值(出现的次数)。 权值线段树用于维护一个数在一个序列中出现的次数 比如数值1,1,2,2,2,3,4,5,6,7,8 初始每个节点为0 插入1 插入2 插入3 插入4 插入5 插入6 插入7 插入8 模板普通平衡树p3369题目描述 阅读全文
摘要:
简单来说就是,你要用到一个点才开那个点,不用的点不开,可以大幅节省空间。这样空间复杂度可以大致降到O(nlogn)。是不是很棒。接下来是实现:一开始,你只有一个根节点。通过update函数往树里面插点,开两个数组记录每个节点的左右儿子编号。递归进入左右儿子,如果要用新点,就开新点。上代码(以区间和为 阅读全文