随笔分类 -  数据结构_主席树

摘要:树桃树 阅读全文
posted @ 2020-01-20 08:02 LuitaryiJack 阅读(184) 评论(0) 推荐(1)
摘要:给定长度为 $n$ 序列 $a[i]$ ,每次询问区间 $[l,r]$ ,并给定 $b,x$ 中的一个数 $p=a[i]$ ,使得最大化 $b \bigoplus p^x$ 主席树+按位贪心。 我们可以直接贪每一位长什么样子,然后再主席树上区间查询即可。 2019.11.23 阅读全文
posted @ 2019-11-23 21:47 LuitaryiJack 阅读(101) 评论(0) 推荐(0)
摘要:思路:数据结构 提交:Inf次 题解: 树状数组套主席树 考虑静态区间第k大是一个前缀主席树,但是如果修改是 $O(nlogn)$ 的,查询时 $O(logn)$ ,考虑去均衡两部分的复杂度,如何均衡的维护前缀和?于是上了树状数组。于是乎主席树 $i$ 维护的是 $[i lowbit(i)+1,i] 阅读全文
posted @ 2019-09-14 07:42 LuitaryiJack 阅读(227) 评论(0) 推荐(0)
摘要:思路:可持久化线段树+巧妙地树上差分 提交:1次 题解: 我们从根开始,类似主席树板子,一个一个加点,使得从根到叶子节点时一个类似前缀和的主席树,即 $u$ 点维护的是 $1$ 到 $u$ 的路径。 这样我们就可以在 $u+v lca(u,v) fa(lca(u,v))$ 这样一颗线段树上二分了。 阅读全文
posted @ 2019-09-03 19:53 LuitaryiJack 阅读(167) 评论(0) 推荐(0)
摘要:思路:可持久化线段树+标记永久化 提交:3次 错因:标记维护出锅+没开long long 题解: 与正常的可持久化线段树的区别在于,本题是区间修改。 我们应用标记永久化的思想,在$[l,r]$中访问到的第一级线段打上标记; 如图: 然后更新sum数组时加上子节点的标记(完全覆盖子树信息)。 quer 阅读全文
posted @ 2019-09-03 19:37 LuitaryiJack 阅读(215) 评论(0) 推荐(0)
摘要:既然有了可持久化数组,就有可持久化并查集。。 由于上课讲过说是只能按秩合并(但是我也不确定。。。),所以就先写了按秩合并,相当于是维护fa[]和rk[] getf就是在这棵树中找,直到找到一个点的fa[x]==x 之所以这种写法不能路径压缩,个人理解是因为路径压缩会破坏原先的结构。。。反正我魔改改错 阅读全文
posted @ 2019-05-06 15:09 LuitaryiJack 阅读(134) 评论(0) 推荐(0)
摘要:就是板子、、、 节点中维护的值,就是1-i之间这个区间内出现了数的次数(权值线段树?雾)。然后当我们查询的时候,就是利用到了前缀和的思想,拿左端点那棵树和右端点一减~ 更新的时候需要新开的点就开,不需要的就连到原来的点上去,相当于更新一条链。这样复杂度是nlogn的。 好想大佬们都把根作为实参转进去 阅读全文
posted @ 2019-04-17 23:47 LuitaryiJack 阅读(120) 评论(0) 推荐(0)