
可持久化
文章平均质量分 81
包括可持久化线段树(主席树)、可持久化平衡树等
ez_lcw
这个作者很懒,什么都没留下…
展开
-
【CF464E】The Classic Problem(主席树优化高精,dijkstra)
题目也没有给出什么很特殊的性质,所以考虑能不能高精度最短路。dijkstra 中涉及的运算主要是两个:加法和比较大小。注意到题目给出的边权是 2k2^k2k 的形式,我们不如直接用二进制表示每一个数。而比较大小的实质是从高到低找到第一个不相等的位,这个我们可以用哈希+二分实现。发现加法并不是两个大数相加,而是一个大数 xxx 加上一个 2m2^m2m(代码中的具体体现是 dis[u]+w[i]),这样做的是实质是从 xxx 的第 mmm 位开始找到最长的一段 111,并把这一段 111 置为 000原创 2021-01-25 20:16:24 · 186 阅读 · 1 评论 -
【SCOI2016】美味(主席树,贪心)
看到异或最大,第一反应是用 01trie 做。但是 01trie 不能实现区间加法,所以不好做。看回题目,从最简单的思路去想:设 ansansans 能使得 ans xor bans\ \operatorname{xor}\ bans xor b 最大。每次将 bbb 二进制拆分,设二进制下 bbb 的第 iii 位为 bib_ibi(第 000 位为最低位),ansansans 的第 iii 位为 ansians_iansi。然后我们贪心地从高位往低位原创 2020-08-26 11:35:15 · 197 阅读 · 0 评论 -
【BZOJ4504】K个串(优先队列,可持久化线段树)
Description兔子们在玩k个串的游戏。首先,它们拿出了一个长度为n的数字序列,选出其中的一个连续子串,然后统计其子串中所有数字之和(注意这里重复出现的数字只被统计一次)。兔子们想知道,在这个数字序列所有连续的子串中,按照以上方式统计其所有数字之和,第k大的和是多少。Input第一行,两个整数n和k,分别表示长度为n的数字序列和想要统计的第k大的和接下里一行n个数a_i,表示这个数字序列Output一行一个整数,表示第k大的和设 f(i,j)f(i,j)f(i,j) 表示以 iii.原创 2020-07-29 20:09:37 · 391 阅读 · 0 评论 -
【BZOJ3123】【SDOI2013】【XSY1660】森林(启发式合并,主席树)
综合性比较强的一道题。据说有LCTLCTLCT+主席树的毒瘤做法,我也不知道这群人码这个东西的信心从哪来 但人家到底是码出来了对于询问,我们考虑用主席树实现。关键是怎么建才能维护一条路径上的。对于原树中的节点uuu,我们在权值线段树中维护的是从根到uuu的所有点的点权。那么对于uuu到vvv的路径上的点,我们先计算出lca(u,v)lca(u,v)lca(u,v)以及fa[lca]fa[...原创 2019-12-28 10:57:51 · 162 阅读 · 0 评论