
数据结构 可持久化数据结构
文章平均质量分 86
Fsss_7
这个作者很懒,什么都没留下…
展开
-
bzoj3653: 谈笑风生
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3653题意:中文题。分析:很明显这题可以分为两种情况:(1)b是a的祖先,那么有min(de[a]-1,y)种选择,c就随便选一个a子树中的点就行了。(2)b是a的子孙,c是b子树中的点,且b距离a小于等于k。第一种情况没压力,第二种情况才是关键。子树问题,我们优先想到dfs序,然后问题原创 2016-04-06 22:36:49 · 938 阅读 · 0 评论 -
51nod1295 XOR key
链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1295题意:中文题。分析:裸的可持久化trie树,练习题。代码:#include#include#include#include#include#include#include#include#include#include#inc原创 2016-07-09 12:27:17 · 459 阅读 · 0 评论 -
poj2104K-th Number
链接:http://poj.org/problem?id=2104题意:给定一个长度为n的数组,给定q个询问:(l,r,k)求在a[l]~a[r]之间的第k小。分析:裸的可持久化线段树。代码:#include#include#include#include#include#include#include#include#include#include#inclu原创 2016-04-11 21:49:47 · 280 阅读 · 0 评论 -
bzoj3166: [Heoi2013]Alo
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3166题意:中文题。分析:枚举每个元素,将它当成那个次大值,然后在它所作用的区间内找异或最大值即可。怎么找它作用的区间呢?用set和priority_queue一起,用优先队列使得大的元素的位置先进set。然后对于每一个新位置找他前面和后面的位置边界即可。我写得好丑~O(nlog(max原创 2016-04-13 23:32:49 · 541 阅读 · 0 评论 -
bzoj3261: 最大异或和
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3261题意:中文题。分析:问题等价于求一个x与区间a[l]~a[r]之间的最大异或和。转为二进制树建可持久化字典树,在区间内跑最大值。O(nlogn)代码:#include#include#include#include#include#include#include原创 2016-04-13 21:46:12 · 555 阅读 · 0 评论 -
bzoj3524: [Poi2014]Couriers
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3524题意:中文题。分析:区间问题,并且询问的是大于区间一半的值,我们可以直接用可持久化线段树查询。O(nlogn+qlogn)代码:#include#include#include#include#include#include#include#include#原创 2016-04-13 14:33:36 · 666 阅读 · 0 评论 -
bzoj3295: [Cqoi2011]动态逆序对
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3295题意:中午题。分析:本来打算练习cdq分治的,明天补吧。不过看到这题一眼就想用可持久化线段树,不过带修改的可持久化线段树开销有点大,变了一种方法卡了点空间才过。详见代码。O(nlogn*logn)。代码:#include#include#include#include原创 2016-04-24 23:31:29 · 653 阅读 · 0 评论 -
bzoj1901: Zju2112 Dynamic Rankings
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1901题意:中文题。分析:带修改的区间第k小,在可持久化线段树外面套一个树状数组,然后将建树的过程改点。时间O(nlognlogn)+空间T(nlognlogn)代码:#include#include#include#include#include#include#i原创 2016-04-12 19:26:51 · 619 阅读 · 0 评论 -
BestCoder Round #77
链接:http://bestcoder.hdu.edu.cn/分析:1001,子集异或和的异或和,除了n==1的情况外所有元素都会在偶数个子集中出现,所以特判一下即可。O(n)代码:#include#include#include#include#include#include#include#include#include#include#include#inc原创 2016-03-27 15:53:15 · 492 阅读 · 0 评论 -
bzoj2588: Spoj 10628. Count on a tree
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2588题意:中文题。分析:树上建可持久化线段树,从父亲那继承。查询的时候减去lca和lca的父亲两个前缀即可。详见代码。O(nlogn+mlogn)代码:#include#include#include#include#include#include#include原创 2016-04-11 22:36:26 · 648 阅读 · 0 评论 -
hdu5919Sequence II
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5919题意:给定n个数,q个询问,每次询问给定一组l,r,要求在线。求数组中l~r中每个数第一次出现的位置的中位数。分析:我们可以求出每个数前一次出现的位置为pre[i],那么对于区间[l,r]中我们只需要求出右多少个pre[i]代码:#include#include#include#原创 2016-10-07 14:18:14 · 553 阅读 · 0 评论