随笔分类 - Tree
摘要:JSZX Winter Camp Day 3 爆零记 emmmm蒟蒻的我爆零啦!!T1码了个dijikstra然后T了,正解为Floyd。T2蒟蒻并不会,唯一会的只有暴力。。T3写了个Trie然后MLE了,然而正解是 哈希。T4是蒟蒻唯一一道会的,然而却忘了开long long。手动GG。。 <T1
阅读全文
摘要:Luogu U18740 古墓丽影 题意概括:以某个点为根时,其他每个点到它的距离*它的点权的和的最小值。 这题是带权重心的裸题。 DFS即可。 #include<cstdio> #include<iostream> #include<algorithm> #define ll long long
阅读全文
摘要:BZOJ 3647——可持久化并查集加强版 不会可持久化并查集先去做http://www.cnblogs.com/Fish-/p/8242582.html. 幼稚的以为直接交原来的就好了,结果T了! 加个路径压缩,but一直RE,请了几位大神还是解决不了。。所以先留个坑。。
阅读全文
摘要:Codeforces Round 36 蒟蒻的我并没有参加contest,比赛后打的,目前只写了4道题QWQ。 A.Garden 这这这真的就是一道水题 <题意概括> 给定n个水桶的数值,求在这n个水桶中能整除K的最大的数值。1<=n,k<=100. 直接枚举,因为只有一百,取最大的数。 Code
阅读全文
摘要:Luogu 3203 BZOJ 2002——弹飞绵羊 题意概括 给定一个序列,有N个装置,绵羊在不同 其实就是个裸LCT。 从i能跳到i+k即可以理解为i到i+k之间有一条连边 修改操作即断边然后连边。 在查询时只需要把要出发的点成为原树的根,然后访问n+1,把n+1splay到根,然后结果就在n+
阅读全文
摘要:Segment Tree——线段树 线段树是一种二叉搜索树,它将一个单元划分为几个单元,实际应用是应开4*N空间防止越界。 线段树中的节点可以用来存区间和,区间最小值,最大值都可以。 图中的栗子就是对于数组[2,5,1,4,9,3]中维护区间最小值。 当线段树为叶子节点时,它其实就是原数组中的一个元
阅读全文
摘要:<范浩强treap>-函数式平衡树 范好强treap是一种毒瘤treap,它并不用通过旋转来达到平衡,它主要有两种操作: merge(x,y):将x的子树和y的子树合并起来;{注意:merge操作中,x子树中的最大值永远会小于等于y子树中的最小值 所以在merge的过程中只需要考虑随机值,而不需考虑
阅读全文
摘要:树状数组套主席树 树状数组的每个节点维护的是一段区间,我们将每个区间构造成一棵线段树,这时候如果我们要修改一个值,只需要修改logn个节点即可, 时间复杂度为log^2(n),树状数组维护的区间是数的个数n;离散化时是把所有数(包括要修改的数)全部离散化; 1.修改 在修改之前,我们应先把序列里原来
阅读全文
摘要:可持久化线段树-主席树 主席树又称函数式线段树,顾名思义,就是通过函数实现的,也称可持久化线段树,支持在线处理,可以访问历史版本,后一刻可参考前一刻的状态,充分利用共同数据, 节省空间;主席树可以实现查询区间k小的问题等; 主席树的每个节点对应一棵线段树,对于一个序列,我们采用前缀和的思想,如a[1
阅读全文
摘要:emm接下来讲讲splay,个人比较喜欢splay,其主要操作就是伸展旋转,它的应用比较广泛,对于一个有序序列,它可以实现区间翻转,还可以求区间第k大。 splay的核心操作-旋转(本人的旋转可能与一般旋转有点不一样): 通过上图两种旋转我们可以发现一点点规律:若要rotate(x),先获取x为该父
阅读全文
摘要:TREAP treap(树堆)是指有一个随机附加值满足堆的性质的二叉搜索树,基本操作期望时间复杂度为O(logn),相比于其他平衡树,treap实现较简单,且能实现随机平衡。 在这里我就讲下小根堆的treap(大根堆一样),treap在SBT的性质上还附加了一个随机值(优先级),小根堆的话,当前节点
阅读全文
摘要:Link Cut Tree 其实本人觉得LCT对于已经学过树剖与Splay的大佬是很容易理解接受的; LCT是有树链与Splay结合而成的动态树;什么是动态树呢,就是维护森林的联通性的总称; 先介绍一些概念: 1.prefered child:最后被它的点在x的儿子p节点的子树中,那么p为x的偏爱子
阅读全文

浙公网安备 33010602011771号