其实这个模板我就花了四个晚上调试,所以代码实现能力弱是个大坑:) 思路 主席树的另一个名字叫做可持久化权值线段树,用于维护多个版本的线段树。由于开多颗线段树的话空间会炸到飞起,所以可以充分利用每棵线段树中的重复部分。比如在第i + 1的版本的末尾新增一个节点,第i + 1棵版本的线段树和第i棵线段树 ...
分类:
其他好文 时间:
2019-08-11 11:06:56
阅读次数:
72
·线段树 主席树和可持久化线段树有什么区别? 主席树(可持久化线段树) 可持久化线段树(Persistent data structure)最主要的功能就是可以查询历史版本。那么presistent≈president(主席),得名主席树。 给你个问题: 给你一段数列,要求查询一段区间的第k小数。$ ...
分类:
其他好文 时间:
2019-08-10 21:37:38
阅读次数:
75
学习内容:线段树+可持久化线段树 今日完成题数(不包含多校):5 /*多校补题情况(之前定的每支队伍标准):?*/ 今日看书情况:3页 学习算法的总结 可持久化线段树一直没有好好研究 直到最近着重开始写线段树专题 写了一些权值线段树 才把之前有的疑问的解决了 今日做题总结 hdu-6183 http ...
分类:
其他好文 时间:
2019-08-02 23:00:33
阅读次数:
189
引入 首先请求出: ? 长度为n的序列 ? m次询问全局第k小 做法: ? 画一棵(权值)线段树手动模拟,请记住此过程 之后,请思考; ? 长度为n的序列 ? m次询问区间[l, r]中第k小值 ? 值域 ±1e9 ? n≤2e5 , m≤2e5 做法: 可持久化线段树 原理 用 [1, r]建得的 ...
分类:
其他好文 时间:
2019-07-27 09:54:38
阅读次数:
101
例题:https://www.luogu.org/problemnew/show/P3834 主席树用于查询每个历史版本。 这个题代码如下 例题2:https://www.luogu.org/problemnew/show/P3919 主席树裸题,直接就是模板。 代码如下: ...
分类:
其他好文 时间:
2019-06-14 22:12:48
阅读次数:
113
学习博客:http://www.cnblogs.com/flashhu/p/8297581.html 很裸的可持久化线段树板子题。可持久嘛!就是当出现历史版本的时候,能够非常方便地维护一个区间的历史版本。自然,我们需要建NN棵线段树。最粗暴的想法,对每个新版本都把原版本内容复制一遍,然后修改对应的值 ...
分类:
编程语言 时间:
2019-05-18 18:40:04
阅读次数:
146
题目链接 题意:统计树上每个结点中恰好出现了k次的颜色数。 dsu on tree/线段树合并裸题。 启发式合并1:(748ms) 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int ...
分类:
其他好文 时间:
2019-05-01 23:58:29
阅读次数:
207
就是板子、、、 节点中维护的值,就是1-i之间这个区间内出现了数的次数(权值线段树?雾)。然后当我们查询的时候,就是利用到了前缀和的思想,拿左端点那棵树和右端点一减~ 更新的时候需要新开的点就开,不需要的就连到原来的点上去,相当于更新一条链。这样复杂度是nlogn的。 好想大佬们都把根作为实参转进去 ...
分类:
其他好文 时间:
2019-04-18 00:42:12
阅读次数:
192
$ \color{ 0066ff}{ 题目描述 }$ 小粽是一个喜欢吃粽子的好孩子。今天她在家里自己做起了粽子。 小粽面前有 $n$ 种互不相同的粽子馅儿,小粽将它们摆放为了一排,并从左至右编号为 $1$ 到 $n$。第 $i$ 种馅儿具有一个非负整数的属性值 $a_i$。每种馅儿的数量都足够多,即 ...
分类:
其他好文 时间:
2019-04-10 21:54:08
阅读次数:
154
像超级钢琴一样把五元组放进大根堆,每次取一个出来拆开,(d,l,r,p,v)表示右端点为d,左端点区间为(l,r),最大区间和值为v左端点在p上 关于怎么快速求区间和,用可持久化线段树维护(主席树?)每个点到他root的区间和,这样每次右端点右移就是上一个的线段树在(la[a[i]]+1,i)加上a ...
分类:
其他好文 时间:
2019-04-05 19:56:56
阅读次数:
128