
主席树
Jiahe Xu
为何要去攀登珠穆朗玛峰,因为她就在那里啊.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu5820 询问简单路径 主席树
题意:在一个大小为50000*50000的矩形中,有n个路灯。(n 询问是否每一对路灯之间存在一条道路,使得长度为|x1 – x2| + |y1 – y2|且每个拐弯点都是路灯。 ps注意 实现的时候下方y要+1(边界问题) 主席树root维是记录的x棵树的前缀的树根,每棵树记录的是y的分布情况#include using namespace std; #define m原创 2017-06-02 22:41:23 · 498 阅读 · 0 评论 -
hdu 5790 prefix 主席树在线维护区间不同数的个数
题意:给n个串,m次询问,每次给你L,R 要统计第L~R个串中有多少个不同的前缀。n m 题解:由于是前缀,可以用trie树处理,剩下的问题就是在线访问区间内有多少个不同的数了。 我们可以记录trie上每个节点上次出现的位置。对于每个根节点i我们可以记录 前缀上次出现的位置 #include using namespace std; #define maxn 110000 int a[ma原创 2017-03-07 17:03:22 · 518 阅读 · 0 评论 -
hdu5919 主席树求区间不同数
题目大意:有长度为n的序列,强制在线询问[l,r] 这段区间中所有不同数出现的第一个位置,按照位置从小到大排完序以后的中间(向上取整)的那个位置是多少? 解题思路:把n个元素倒着插进主席树中,把上次出现的同一个值的元素的贡献值-1,新的这个值的贡献值+1,这样就可以把这个元素最左侧的位置的贡献保留。查询区间[L,R]时只要查询第L个版本的主席树就好了。 ps:前一篇博客由于原创 2017-03-09 22:15:10 · 618 阅读 · 0 评论 -
主席树总结
主席树在多校里越来越多,本文对主席树做一下阶段性总结。 主席树类似于线段树,由于点更新每次只会更新logn个节点,我们可以申请内存(用数组模拟) ,当然一开始可以把整棵原始树要建立起来,更新的时候要用root数组记录当前版本树根的标号。这样点询问的时间和空间复杂度都是logn。 主席树支持还原历史版本(因为每个版本的树都已经存下来了) 数在区间第一次出现 区间有多少不同数 树套树的操作 关键原创 2017-07-01 08:18:18 · 1038 阅读 · 0 评论