参考链接:https://blog.csdn.net/WilliamSun0122/article/details/77885781 一.动态主席树介绍 动态主席树与静态主席树的不同在于:静态主席树不能支持后期对区间内数的修改. 例如:刚开始区间内的数为1.4.3.2.5.你再建完主席树之后要把第二个位置的4改成2.这在原来的静态主席树上是没法操作的.只有重新在建一棵静态主席树 但是动态主席树可以借助树状数组和主席树 [权值线段树]来支持修改操作(也就是树套树了) 建议没有学过树状数组和主席树…
The Company Dynamic Rankings has developed a new kind of computer that is no longer satisfied with the query like to simply find the k-th smallest number of the given N numbers. They have developed a more powerful system such that for N numbers a[1],…
写的让人看不懂,仅留作笔记 静态主席树,相当于前缀和套(可持久化方法构建的)值域线段树. 建树方法:记录前缀和的各位置的线段树的root.先建一个"第0棵线段树",是完整的(不需要用可持久化的方法),所有数据为0.后面每一个位置的前缀和放的线段树都先设root与前一位置的线段树一样,然后再按照原序列在指定位置进行(可持久化的)单点加法.(类比放数值的前缀和,每一位置的前缀和是前一位置前缀和加上当前位置数值) 带修改主席树,相当于区间树状数组套(可持久化方法构建的)值域线段树. 建树方法…
题意:动态第k大,可单点更新,操作+原数组范围6e4 年轻人的第一道纯手工树套树 静态第k大可以很轻易的用权值主席树作差而得 而动态第k大由于修改第i个数会影响[i...n]棵树,因此我们不能在原主席树T上扩展, 而是另开一个表示影响的主席树dT并由树状数组来控制更新和查询前缀线段树和 注意更新时dT的下标要遵循树状数组的子集表示方法 查询时留意整个dT下移到儿子的操作 最后祝ZOJ全家Segmentation Fault #include<iostream> #include<algo…
题目链接:戳我 其实我并不会做,于是看了题解 我们都知道主席树是利用前缀和记录历史版本来搞区间K大的一种数据结构.不过一般的主席树只能搞定静态区间第K大.如果带修怎么办呢? 想一下...单点修改+区间查询,我们是否能想到树状数组呢? 那么思路就出来了.用树状数组来维护主席树的前缀和!!这里的主席树只需要维护对于每个节点所包含的值域区间中数的个数即可,不需要继承历史版本. 单次操作复杂度两个log,应该是稳稳的了. 代码如下: #include<iostream> #include<cst…
题目: emmmm是个权限题 题解: 带修改主席树的板子题,核心思想是用树状数组维护动态前缀和的性质来支持修改 修改的时候修改类似树状数组一样进行logn个Insert 查询的时候同理,树状数组的方法取出和这个位置相关的节点,用数组保存然后计算 #include<cstdio> #include<algorithm> #include<cstring> #define N 100005 #define M 6000005 using namespace std; int…
带修改的主席树,其实这种,已经不能算作主席树了,因为这个没有维护可持久化的... 主席树直接带修改的话,由于这种数据结构是可持久化的,那么要相应改动,这个节点以后所有的主席树,这样单次修改,就达到n*log n 的复杂度 现在介绍这种待修改的主席树,本质上是用树状数组的区间查询维护的线段树,树状数组的每个点,都开一个权值线段树,维护的是lowbit(x)-x之间的数字的出现次数 这样我们相当于,把一个1-n权值线段树,用树状数组给砍成logn段,这样就非常方便...我们用树状数组遍历维护前缀和的…
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 7292  Solved: 3038[Submit][Status][Discuss] Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i…
带修改的题主席树不记录前缀,只记录单点,用BIT统计前缀.  对于BIT上每一个点建一棵主席树,修改和询问的时候用BIT跑,在主席树上做就行了.  3k4人AC的题#256...应该不算慢 #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<algorithm> #define ll long long using namespace s…
The best programmers of Embezzland compete to develop a part of the project called "e-Government" — the system of automated statistic collecting and press analysis. We know that any of the k citizens can become a member of the Embezzland governm…