数据结构
Flyppy_White
这个作者很懒,什么都没留下…
展开
-
左偏树
左偏树什么是左偏树左偏树即是同时具有左偏性和堆性质的树。堆性质保证我们可以容易地弹出堆顶元素,插入新的元素,得到堆顶元素,而左偏性保证了我们可以在O(log(n))O(log(n))O(log(n))的复杂度内合并两个堆左偏树有什么作用在维护一些树状关系时,我们常常需要求出树上一些点的的前数项和以满足其项数小于某个值,或者其和小于某个值,这样比较直接的想法就是求出每个节点的子节点权值的排序...原创 2019-01-20 00:33:40 · 143 阅读 · 0 评论 -
CF 920F SUM and REPLACE(线性递推&线段树)
CF 920F SUM and REPLACE(线性递推&线段树)题目大意设以函数D(i)D(i)D(i)为i的因数的数量。现在给出一段序列{a}。有两种操作,操作1为将l和r之间的所有的数aia_iai变为D(ai)D(a_i)D(ai),另一种操作求l,r之间aia_iai的和解题思路首先线性地递推出 所有的D(i)D(i)D(i),用一棵线段树维护这一段序列,每次更新一...原创 2019-05-03 00:47:49 · 176 阅读 · 0 评论 -
SPOJ QTREE3Query on a tree again!(树链剖分+树状数组+二分)
SPOJ QTREE3Query on a tree again!(树链剖分+树状数组+二分)题目大意现在有一颗树,其所有的节点都为白色。有两种操作 ,一是将一个节点的颜色进行反转(即黑色变成白色,白色变成黑色),一是查询1号节点和v节点路径上深度最小的那个黑色节点解题思路设黑色的节点权值为1,白色的节点权值为0,对树进行剖分后用树状数组维护前缀和。对于每次查询,先找出节点v在上升到1号节...原创 2019-07-28 23:27:02 · 129 阅读 · 0 评论 -
BZOJ1036 树的统计Count(树链剖分+线段树)
BZOJ1036 树的统计Count(树链剖分+线段树)题目大意一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权值和 注意:从点u到点v的路...原创 2019-07-28 23:27:39 · 212 阅读 · 0 评论 -
牛客多校第一场Points Division(线段树)
牛客多校第一场Points Division(线段树)题目大意给出一些二维平面上的一些点,每个点有两种权值a,b,现在要将所有的点分成两部分,分别归入A集合和B集合,并且要求不存在i∈A,j∈Bi\in A,j\in Bi∈A,j∈B使得xi≥xjx_i\ge x_jxi≥xj且yi≤yjy_i\le y_jyi≤yj。对于每种划分,都有一个值其大小为A中的点的a值加上B中电的b值。现...原创 2019-07-23 23:29:39 · 204 阅读 · 0 评论 -
Poj1741 Tree(树分治)
Poj1741 Tree(树分治)题目描述给出一棵树,求出其中有多少点对满足点之间的路径小于某个值K解题思路路径可以分成树间路径和树内路径。对于树间路径只需要满足两点到树的根节点的距离之和小于等于k则满足条件。只要对树间路径进行容斥即是答案。为此需要根据根节点进行递归容斥,通过树分治的思想,每次找树的中心进行计算可以将递归次数降到到log(n),算上每次枚举需要对子树的所有边进行排序,因此...原创 2019-07-26 16:45:35 · 189 阅读 · 0 评论 -
HDUOJ6602 Longest Subarray(线段树)
HDUOJ6602 Longest Subarray(线段树)题目大意给出一段序列,求出其中最长的一段子序列,使得这段子序列中的每个数字出现的次数都要大于等于K次解题思路对于每个位置i,维护出这个数字上k次出现的位置,设为lastk[i](即lastk[i]-i,数字a[i]恰好出现了k次)。枚举右节点,对于每个右节点维护出这个节点之前所有的节点到这个节点形成的区段中有多少的数字出现的次数...原创 2019-07-27 10:33:45 · 278 阅读 · 0 评论