随笔分类 - 数据结构--可持久化
摘要:(勿看,仅作笔记) bzoj权限题。。。 https://www.luogu.org/problemnew/show/P4585 对于特殊商品,直接可持久化trie处理一下即可 剩下的,想了一段时间cdq,但是没想出来。。。应该是不行的 事实上,如果询问的不是最大值,而是一些满足[l,r]的答案等于
阅读全文
摘要:可持久化trie模板。。。。 错误记录: 没有在第0棵树中插入0,WA; 此题没有保证l,r合法,所以应该最好要判一下的。。。。并且按我这个写,是要访问到-1元素下标的树的(这个是真正的空树,0都没有),要所有下标+1才对(然而没有改也A掉了?) 改的时候要小心再小心。。。。(因此WA了无数发) 错
阅读全文
摘要:这题与超级钢琴类似,然而重复的不重复计算贡献。。 那么先求出数组nxt,nxt[i]表示第i个元素之后的第一个与其相等的元素的下标,不存在则nxt[i]=0 考虑取的区间左端点为1时的情况。 将读入序列a中相等元素都只保留最先出现的,其余变为0,然后求前缀和,得到数组b。 此时可以知道,设f(l,r
阅读全文
摘要:这个题也是可以用可持久化线段树来解决的。 值域线段树(也有的叫权值线段树)可以用来维护一个可重集,并实现一些一般情况下平衡树才能实现的事情。 如果用值来当做区间左右端点,每个叶子节点上存某个值出现的次数,非叶子节点上存一定范围内的值出现的总次数,就可以建成值域线段树。可以在上面直接查询第k大值、小于
阅读全文
摘要:当然是可以用可持久化线段树/平衡树做的。不过这里记一下一种奇怪的方法:http://blog.csdn.net/kscla/article/details/53586880 如果用线段树来维护的话,线段树上非叶子节点的节点都是没有用的,因为并不需要它们记录值。因此可以建一棵二叉树,每一个节点表示原数
阅读全文
摘要:写的让人看不懂,仅留作笔记 静态主席树,相当于前缀和套(可持久化方法构建的)值域线段树。 建树方法:记录前缀和的各位置的线段树的root。先建一个"第0棵线段树",是完整的(不需要用可持久化的方法),所有数据为0。后面每一个位置的前缀和放的线段树都先设root与前一位置的线段树一样,然后再按照原序列
阅读全文

浙公网安备 33010602011771号