欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1146 题意概括 在一棵树上,每一个点一个权值。 有两种操作: 1、单点修改 2、询问两点之间的树链上的第k大值 题解 水题。 就是烦了一点。 树链剖分+带修主席树。 带修主席树: BZOJ1901 ...
分类:
编程语言 时间:
2017-12-16 17:22:26
阅读次数:
242
树剖+树状数组套线段树O(nlogn^3)(我打的),有一种更加优秀的算法是O(nlogn^2)的就是直接树状数组套线段树欧拉序(并不快),或者是用主席树维护原始的树的信息,同时用树状数组套线段树维护dfs序上的修改(很优秀),这道题将树上信息转化为序列信息,并在此基础之上用任意树套树,只不过转化的 ...
分类:
Web程序 时间:
2017-12-12 23:53:40
阅读次数:
270
和大奕哥一起学习了主席树,机房里杰哥看了之后一直说可以优化空间,题解写的太low了,所以我今天写了一个动态开点的线段树来优化一波空间,bz上试了一下,确实比网上看的题解省空间。 网上的题解是每一次都新开点,是可持久化的写法,我写的是正经的线段树动态开点。 附上代码 ...
分类:
其他好文 时间:
2017-12-09 19:21:29
阅读次数:
101
题解: 主席树+树状数组+树链剖分 树状数组维护修改 树链剖分维护树型结构 主席树维护持久化 代码: ...
分类:
其他好文 时间:
2017-12-09 18:18:35
阅读次数:
154
终于学了这个我仰慕已久的算法。 对于待修改的主席树我们只需要多开一维,进行修改后的求和。复杂度进化为O(nlog^2n) 我们需要开R0 L0两个数组记录树状数组的“路径” 然后其他操作就和主席树一样咯! ...
分类:
编程语言 时间:
2017-12-08 22:59:01
阅读次数:
209
知识点:切比雪夫距离转曼哈顿距离 以(x1,y1)和(x2,y2)二点为例 其切比雪夫距离为 其曼哈顿距离为 题目中的距离是切比雪夫距离,而切比雪夫距离与曼哈顿距离可以互相转化 考虑二维笛卡尔坐标系的坐标原点O(0,0),与它的切比雪夫距离为1的点的集合形成的图形是一个边长为2的正方形,与它的曼哈顿 ...
分类:
其他好文 时间:
2017-12-08 22:56:24
阅读次数:
201
"BZOJ 2588" Count on a tree 题面 求树上两点之间路径上第k大的点权。 题解 一开始看到这道题觉得是树剖,然后又听说是主席树,然后以为是主席树+树剖,差点没吓死…… 然后发现,如果每个点都挂一棵主席树,每棵都通过修改父亲的主席树得到,这样当询问路径(u, v)时,u的主席树 ...
分类:
其他好文 时间:
2017-12-08 21:10:43
阅读次数:
211
为了这道题还特地去学了标记永久化,可能对于区间修改主席树或者树套树比较有用吧OvO 我们可以把答案分为两部分:p1造成的和p2造成的 我们枚举序列,用单调栈求出序列每一个位置i,左右边第一个比它大的L,R 开三棵主席树tree1 tree2 tree3 把L扔进tree1的R位置(单点+1),L+1 ...
分类:
其他好文 时间:
2017-12-08 16:41:08
阅读次数:
188
前言: 本文由Hallmeow原创,转载请注明出处! 由于打丧心病狂的 [BZOJ 4826]影魔 导致需要学习标记永久化,于是入坑OvO 知识点:线段树标记永久化 对于树套树,主席树等使用到线段树的比较复杂的数据结构,如果我们区间修改的话,打标记后pushdown或者pushup是很费劲的 那么我 ...
分类:
其他好文 时间:
2017-12-08 14:09:47
阅读次数:
188
题目意思非常清楚,就是要求树上带修改的路径k大值 如果不带修改的话,我会用树上主席树去搞,以父子关系建树,可以参见 [BZOJ 3123]森林 但是带修改就不会打了QAQ,于是去学了另一种在dfs序上搞的方法(同时感谢呵呵酵母菌的帮助) 其实思想是一样的,就是搞出来节点到根路径的线段树,然后用x+y ...
分类:
Web程序 时间:
2017-12-07 21:01:24
阅读次数:
229