知识点 线段树 权值 树套树 二维 可持续 解决问题类型: 区间rmq即其他符合结合律的运算,支持区间更新。 想法题 1. 【二分】找第k个0:结点维护0的个数cnt[rt],然后在树上队cnt二分。 2. 【二分】找第k大(权值线段树):这个问题可以排序或 . 考虑线段树的做法,我们先将n个数离散 ...
分类:
其他好文 时间:
2019-08-16 22:27:48
阅读次数:
99
主席树也就是指可持久化线段树,大致思想也就是每次利用之前的重复信息,只为被更新的一部分开辟新点。而且所谓可持久化线段树实际上是指可持久化权值线段树,线段树中每个端点存的是这个端点所代表的树的出现次数。 而在主席树的维护当中对于每个历史版本如果都开一颗新树,那么M将是最终的结局。正确解法则是为每一个改 ...
分类:
其他好文 时间:
2019-08-15 06:05:25
阅读次数:
84
权值线段与主席树总结 权值线段树就是把线段树的每个点权,赋予一定的含义,比如数字出现的次数,数值前缀出现的次数,并用区间求和维护一个区间信息,比如数字出现的次数,第K大等(不能实现区间第K大),前缀第K大等。 权值线段树优点: 能够比较容易实现平衡树的一系列操作 一个序列中,插入一个数,删除一个数, ...
分类:
其他好文 时间:
2019-08-14 21:53:18
阅读次数:
112
其实这个模板我就花了四个晚上调试,所以代码实现能力弱是个大坑:) 思路 主席树的另一个名字叫做可持久化权值线段树,用于维护多个版本的线段树。由于开多颗线段树的话空间会炸到飞起,所以可以充分利用每棵线段树中的重复部分。比如在第i + 1的版本的末尾新增一个节点,第i + 1棵版本的线段树和第i棵线段树 ...
分类:
其他好文 时间:
2019-08-11 11:06:56
阅读次数:
72
在完成了分配任务之后,西部314来到了楼兰古城的西部。 相传很久以前这片土地上(比楼兰古城还早)生活着两个部落,一个部落崇拜尖刀(‘V’),一个部落崇拜铁锹(‘∧’),他们分别用V和∧的形状来代表各自部落的图腾。 西部314在楼兰古城的下面发现了一幅巨大的壁画,壁画上被标记出了N个点,经测量发现这N ...
分类:
其他好文 时间:
2019-08-11 00:47:05
阅读次数:
82
题意:带修求区间k小 题解:回忆在使用主席树求区间k小时 利用前缀和的思想 既然是前缀和 那么我们可以使用更擅长维护前缀和的树状数组 但是这里每一颗权值线段树就不是带版本的 而是维护数组里i号点的权值信息 所以实际上并不是主席树 每一棵和前面一棵并没有共用结点 对于一次修改操作 我们先删去这个点的原 ...
分类:
编程语言 时间:
2019-08-07 16:07:25
阅读次数:
111
权值线段树 所谓权值线段树,就是一种维护值而非下标的线段树,我个人倾向于称呼它为值域线段树。 举个栗子:对于一个给定的数组,普通线段树可以维护某个子数组中数的和,而权值线段树可以维护某个区间内数组元素出现的次数。 在实现上,由于值域范围通常较大,权值线段树会采用离散化或动态开点的策略优化空间。 更新 ...
分类:
其他好文 时间:
2019-08-04 01:20:25
阅读次数:
103
学习内容:线段树+可持久化线段树 今日完成题数(不包含多校):5 /*多校补题情况(之前定的每支队伍标准):?*/ 今日看书情况:3页 学习算法的总结 可持久化线段树一直没有好好研究 直到最近着重开始写线段树专题 写了一些权值线段树 才把之前有的疑问的解决了 今日做题总结 hdu-6183 http ...
分类:
其他好文 时间:
2019-08-02 23:00:33
阅读次数:
189
权值线段树只是节点存的内容变成了权值,区间,区间和,区间数字个数等,和一般线段树的操作差别不大 但对于某些特定问题来说操作很简便,值域较大时一般会采用离散化(就只能离线了 可求区间第k大数,逆序对个数等 示例如图: //待添加 结构体存 建树 插入新点(根据不同问题修改 查询(根据不同问题修改 初始 ...
分类:
其他好文 时间:
2019-07-30 21:38:36
阅读次数:
81
Find the answer "题目传送门" 解题思路 要想变0的个数最少,显然是优先把大的变成0。所以离散化,建立一颗权值线段树,维护区间和与区间元素数量,假设至少减去k才能满足条件,查询大于等于k的最少数量即可。 代码如下 ...
分类:
其他好文 时间:
2019-07-30 20:11:55
阅读次数:
166