主席树
Dawn_LLLLLLL
这个作者很懒,什么都没留下…
展开
-
洛谷 P3834 可持久化线段树 1(主席树)
传送门 主席树模板,求静态区间第k小。 据说主席树又叫可持久化线段树,因此它肯定跟线段树很有关系。 我们用n棵线段树来维护,第i棵线段树维护的是前1~i个元素的值。而每棵线段树上同一位置的节点维护的范围是一样的,若第i个元素的值是x,我们就在线段树里把x这个位置与管理它的节点的值都加1。因为每一棵线段树的结构都是一样的,所以我们可以合并它们。我们每次只需根据新输入的第i个值建一条链,然后...原创 2018-07-09 16:45:06 · 363 阅读 · 0 评论 -
洛谷 P2617 Dynamic Rankings(树状数组+主席树)
传送门 动态区间第k小主要需要学习两种算法,一种是树状数组,另一种是主席树。也就是树状数组套主席树,可以去我以前的blog里看。 在树状数组里,一个点x维护的是区间[x-lowbit(x)+1,x]的信息,而第x棵主席树维护的是区间[1,x]的信息,若是按原来的前缀和主席树修改会很麻烦,于是我们把它们套一套得到:第x棵主席树维护的是区间[x-lowbit(x)+1,x]的信息。 而我们在...原创 2018-07-10 10:34:59 · 328 阅读 · 0 评论 -
洛谷 P2468 [SDOI2010]粟粟的书架(主席树+二分)
传送门 首先我们知道,这题数据有两部分: 对于50%的数据,满足R, C≤200,M≤200,000; 另有50%的数据,满足R=1,C≤500,000,M≤20,000; 对于前50%的数据,我们可以直接二分取书的页数下界解决。 于是我们定义to[i][j][k]表示矩阵[1,1]至矩阵[i,j]中所有不小于k的数的总和,num[i][j][k]为它们的个数。 于是...原创 2018-07-11 11:43:22 · 287 阅读 · 0 评论 -
洛谷 P3157 [CQOI2011]动态逆序对(主席树+树状数组)
传送门 做这题前请先学动态第k小,这里blog。 首先我们有 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数。 那么第一次输出时直接输出序列的逆序对个数,然后问题就转化为删去某个元素时删去的逆序对数。 若删去元素的位置为x,它产生的贡献就是原序列中区间[1,x-1]中大于x的数的个数与区间[x+1,n]中小于x的数的个数加上前面删去的...原创 2018-07-11 14:55:37 · 397 阅读 · 0 评论