浅谈主席树 主席树,又名可持久化线段树,函数式线段树~~(我也不知道啥意思)~~。之所以叫主席树是因为发明人黄嘉泰姓名缩写是hjt~~(知道是谁吧)~~ 首先,可持久化线段树,顾名思义~~它是持久的~~,它支持询问过去版本,也就是说在过去某一次操作时的树,那么这怎么实现呢? 例题1: 给你一个长度为 ...
分类:
其他好文 时间:
2019-11-24 17:38:23
阅读次数:
63
参考博客 先介绍一下主席树,主席树也称函数式线段树也称可持久化线段树。(其实就是支持查询历史版本,这个在看完之后就会了解) 其实主席树就是很多线段树组合的总体,从它的其它称呼也可以看出来了,其实它本质上还是线段树。 主席树就是利用函数式编程的思想来使线段树支持询问历史版本、同时充分利用它们之间的共同 ...
分类:
其他好文 时间:
2019-01-27 01:05:55
阅读次数:
214
题意 给定一个长度为n的数组A,将它变为一颗k叉树(1 using namespace std; struct Node{ int x, id; Node(int x_ = 0, int id_ = 0) {x = x_; id = id_;} }; const int MAXN = 200010; ...
分类:
其他好文 时间:
2018-09-13 12:03:09
阅读次数:
126
按老师说的,他第一次见到可持久化数据结构的时候,觉得它很神奇(其实只是没见过世面而已)。 主席树,这个名字是怎么来的呢? 原因,学长是这样说的:因为发明这种数据结构的大佬名字缩写和hjt主席一样,于是,便叫主席树。 下面进入正文: 主席树,又称函数式线段树、可持久化线段树。 传说是一位大神没学会划分 ...
分类:
其他好文 时间:
2018-08-09 21:13:09
阅读次数:
138
https://zybuluo.com/ysner/note/1099145 标签(空格分隔): 主席树 前置技能 线段树 动态开点 标记永久化 离散化 定义 主席树=可持久化线段树=函数式线段树 线段树经过了若干次修改之后,仍然能找到原来某次修改前的线段树的信息的一种数据结构 建立 据说最无脑的方 ...
分类:
其他好文 时间:
2018-04-04 12:28:04
阅读次数:
157
主席树,又名函数式线段树.是fotile主席创建出来的这个数据结构,所以叫主席树. 然后这里有一些最常用的主席树需要解决的问题. 主席树_ 求区间K大值 题目大意: 给一个长为n的序列,m次询问,每次询问[l, r]内第k大的数是几.n <= 100000, m <= 5000. 首先因为是多次离线 ...
分类:
其他好文 时间:
2018-04-03 21:58:31
阅读次数:
151
主席树乱讲 前置技能 线段树:动态开点,标记永久化,基本操作 离散化 介绍 主席树即可持久化线段树,也叫作函数式线段树 ~~至于为什么叫做主席树,据说是一个叫HJT的神犇在考场上现场yy出来的~~ 可持久化线段树: 顾名思义就是线段树经过了若干次修改之后,仍然能找到原来某次修改前的线段树的信息的一种 ...
分类:
其他好文 时间:
2018-02-28 22:56:16
阅读次数:
194
这个东西有很多名字,主席树,可持久化线段树,函数式线段树。 我们用前缀和的思想,对每个前缀建线段树,区间表示数的大小,进行二分。 我在B站学算法:https://www.bilibili.com/video/av4619406/?from=search&seid=273452703862300118 ...
分类:
其他好文 时间:
2017-12-04 20:46:08
阅读次数:
201
#include using namespace std; struct Node{ int l,r,n; Node *son[2]; }; int a[10005]; vector root; void build(Node *&o,int l,int r){ int mid=(l+r)>>1; ... ...
分类:
其他好文 时间:
2017-10-19 14:09:52
阅读次数:
112
主席树。。高大上的名字。。原名叫可持久化线段树。。也有人叫函数式线段树(其实叫什么都不重要)。 本来的作用就是字面意思。。持久化的线段树,支持修改之后查找某次修改之前的版本。(在NOIP之前在算法导论上看到过,当时觉得没什么,现在才知道好厉害的数据结构) 具体来怎么实现呢。。其实就是每次修改的时候都 ...
分类:
其他好文 时间:
2017-04-09 10:59:23
阅读次数:
212