P3919 【模板】可持久化数组(可持久化线段树/平衡树) 可持久化线段树 不过我对与这一道题有一个想法: 有没有一种可持久化的数组? 带着类似于可持久化线段树的新建节点的想法,我画下了图: 偶们得到了一个初始数组! 接下来修改:pos 1 val 14 那么我们这么做: 这样其实我们就可以On修改 ...
分类:
编程语言 时间:
2019-09-22 21:59:23
阅读次数:
98
浅谈可持久化线段树--主席树 权值线段树 权值线段树和普通线段树不一样的地方就是在于 它的结点存储的是区间内数的个数 这个线段树的好处就在于我们可以根据 左子树 和 右子树 的大小从而进行 查找某个数的排名 或者 查找排名为rk的数 可持久化的含义 可持久数据结构主要指的是我们可以查询历史版本的情况 ...
分类:
其他好文 时间:
2019-09-20 23:16:27
阅读次数:
103
"cf" "luogu" 没有强制在线,所以可以离线,把询问按右端点排序,然后从左往右枚举右端点,并维护左端点为$1$到$i$的区间的答案,然后询问就可以直接取出来 现在优化这个过程.因为是两个元素的最小绝对值,所以先考虑$i j,a_i\le a_j$的贡献,然后把序列和询问端点颠倒过来再做一遍, ...
分类:
其他好文 时间:
2019-09-16 23:25:28
阅读次数:
138
"I. query" 比赛时候没有预处理因子疯狂t,其实预处理出来因子是$O(nlog(n))$级别的 每个数和他的因子是一对偏序关系,因此询问转化为(l,r)区间每个数的因子在区间(l,r)的个数 预处理出来每个位置上的数所有因子的位置,用可持久化线段树维护,区间询问 c++ include de ...
分类:
其他好文 时间:
2019-09-12 12:55:01
阅读次数:
91
求区间第k大 整体二分模板提 // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace std; #define rep(i,a,b) for(int i=(a);i<=(b);i++) #define repp(i,a,b) ...
分类:
其他好文 时间:
2019-09-05 16:47:15
阅读次数:
77
例题1:[poj2104]K-th Number(区间第k小模板题) 题意:询问给定序列静态区间第k小 0.将区间第k小/大转化为存在k个数小于等于/大于等于它且最小/大的数(挺有用的) 1.可持久化线段树(主席树)/可持久化字典树,这里就不写了(在线) 2.分块,询问先二分答案,相当于求小于等于它 ...
分类:
其他好文 时间:
2019-08-25 16:05:31
阅读次数:
81
比赛那会过了两道题,哇贼激动,然后后面就没有然后了。。。 1003我想到用$kmp$,于是不会$kmp$的我开始找板子套,结果$TLE$,就觉得应该是优化不行,优化后AC妥妥$TLE$,就放弃了。 钓鱼也没调上来,找规律的位运算也没整出来,赛后看题解发现我们队过的三个题都是签到题,都不带解释下的,钓 ...
分类:
其他好文 时间:
2019-08-24 22:59:35
阅读次数:
137
主席树也就是指可持久化线段树,大致思想也就是每次利用之前的重复信息,只为被更新的一部分开辟新点。而且所谓可持久化线段树实际上是指可持久化权值线段树,线段树中每个端点存的是这个端点所代表的树的出现次数。 而在主席树的维护当中对于每个历史版本如果都开一颗新树,那么M将是最终的结局。正确解法则是为每一个改 ...
分类:
其他好文 时间:
2019-08-15 06:05:25
阅读次数:
84
前置知识 1.线段树。。。 (好像没了 2.(可知可不知,可能会有帮助)动态开点线段树 主席树(可持久化线段树) 一看可持久化,我们总会想到一些恐怖的算法.但是其实理解并不难,而这里我只是将主席树的思想讲清楚(尽量),题还是自己刷(虽然我就没刷几道 先看一道 模板题 题目描述 如题,给定N个整数构成 ...
分类:
其他好文 时间:
2019-08-14 20:10:41
阅读次数:
89
一、rmq问题 1.st表 2.线段树 3.树状数组 二、lca 三、基本数据结构 1.栈 2.队列 3.单调栈 4.链表 5.stl 6.并查集 7.堆/优先队列 四、分治 1.点分治 2.边分治 3.树链剖分 4.基于询问的分治 5.cdq分治 五、其他 1.可持久化线段树 2.KD-tree ...
分类:
其他好文 时间:
2019-08-11 17:27:04
阅读次数:
70