可持久化数据结构(Persistent data structure)就是利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。所以这里讲的可持久化线段树也叫函数式线段树(又叫主席树……因为先驱就是fotile主席Orz……)。先了解一下主席树http://s...
分类:
其他好文 时间:
2014-08-20 16:05:12
阅读次数:
205
树状数组套主席树,维护区间动态第K大。。。
ZOJ给的空间太小,而主席树要求的空间太大,只能到BZOJ上交
1901: Zju2112 Dynamic Rankings
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 4186 Solved: 1754
[Submit][Status]
Description
给定一个含...
分类:
其他好文 时间:
2014-08-11 00:29:21
阅读次数:
313
终于是解决了这个题目了不过不知道下一次碰到主席树到底做不做的出来,这个东西稍微难一点就不一定能做得出离散化+扫描线式的建树,所以对于某个坐标二分找到对应的那颗主席树,即搜索出结果即可(因为是扫描线式的建树,找到对应的树之后,就知道该点上面的线段有多少条了)其他就是普通主席树的操作了主席树里面维护两个...
分类:
其他好文 时间:
2014-08-10 18:00:10
阅读次数:
254
囧,现在才学。而且发现,主席树和以前写过的线段树维护名次是差不多的,,,只是用多颗线段树维护区间信息,然后可以像前缀和一样的加减。恩,慢慢来写这篇博文。(各种定义以及背景我都掠过了)我先说主席树的构成吧(省略大堆专业术语,我只写通俗易懂的)我们假设现在要维护的数组是a[]一颗主席树T[i]其实就是一...
分类:
其他好文 时间:
2014-08-09 21:03:29
阅读次数:
358
关于主席树:主席树(Chairman Tree)是一种离线数据结构,使用函数式线段树维护每一时刻离散之后的数字出现的次数,由于各历史版本的线段树结构一致,可以相减得出区间信息,即该区间内出现的数字和对应的数量,由于在线段树内,左子树代表的数字都小与右子树,便可像平衡树一样进行K大询问。新建一颗树是\...
分类:
其他好文 时间:
2014-08-09 09:02:57
阅读次数:
350
什么是主席树可持久化数据结构(Persistent data structure)就是利用函数式编程的思想使其支持询问历史版本、同时充分利用它们之间的共同数据来减少时间和空间消耗。因此可持久化线段树也叫函数式线段树又叫主席树。可持久化数据结构在算法执行的过程中,会发现在更新一个动态集合时,需要维护其...
分类:
其他好文 时间:
2014-08-08 17:30:26
阅读次数:
354
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2112The Company Dynamic Rankings has developed a new kind of computer that is no lon...
分类:
其他好文 时间:
2014-08-02 01:37:22
阅读次数:
582
本来是想找个主席树的题目来练一下的,这个题目虽说可以用主席树做,但是用这个方法感觉更加叼炸天第一次做这种离线方法,所谓离线,就在把所有询问先存贮起来,预处理之后再一个一个操作像这个题目,每个操作要求区间不同元素的个数,我盲目去查的话,某个元素在之前如果出现了,我把他算在当前区间也不好,算在之前的区间...
分类:
其他好文 时间:
2014-07-31 02:19:05
阅读次数:
252
给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么只有询问,没有修改可以用归并树和划分树(我都没学过。。囧)我是专门冲着弄主席树来的对主席树的建树方式有点了解了,不过这题为什么是在主席树里面这么操作的 还是有点不懂,今天照着模板敲了一遍就打多校了再研究吧#include #inc...
分类:
其他好文 时间:
2014-07-30 00:42:32
阅读次数:
290
题意:
允许单点修改的区间第K值为题
思路:
树状数组套主席树 详见注释
按照kuangbin大神的代码学习 虽然还是理解得不透彻TAT
代码:
//树状数组套主席树
#include
#include
#include
using namespace std;
#define N 60010 //数组和哈希表大小
#define M 10010 //操作数
#de...
分类:
其他好文 时间:
2014-07-29 14:35:48
阅读次数:
164