09 2019 档案
摘要:浅谈可持久化线段树--主席树 权值线段树 权值线段树和普通线段树不一样的地方就是在于 它的结点存储的是区间内数的个数 这个线段树的好处就在于我们可以根据 左子树 和 右子树 的大小从而进行 查找某个数的排名 或者 查找排名为rk的数 可持久化的含义 可持久数据结构主要指的是我们可以查询历史版本的情况
阅读全文
摘要:区间的操作最主要的地方就是把 split 操作从按权值分裂 改成了 按大小分裂 我们把 大小 == k 放在一棵树,然后其余的放在另一棵树
阅读全文
摘要:其实二叉平衡树就是通过各种奇异的操作从而维持二叉树的平衡 fhq Treap特殊就特殊在它并没有像其他性能非常优越的平衡二叉树一样是通过旋转从而实现二叉树的平衡 fhq Treap的核心操作其实就两个 分裂 和 合并 分裂 分裂就是把一棵二叉平衡树 分成两个二叉平衡树, 左边的二叉平衡树的所有点的权
阅读全文
摘要:优雅即是暴力! 替罪羊树的构建其实就是暴力的构建。 -> 即每次插入的时候我们都判断是否需要重构。 要注意什么什么时候传的是一个引用,什么时候不需要传引用
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P2486 思路: 首先我们看到颜色的个数,然后又是一个树上的操作很自然而然的就会想到树链剖分 但是会遇到一个问题,那就是题目并不是直接给你染色颜色的个数的,所以我们先要预处理得到颜色个数 首先我们分情况进行讨论: 第一种情况:
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P4092 感觉这个题目和前面做的黑白染色的很像,思路都是差不多的吧。
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P4116 题意: 修改颜色的时候用异或,这里线段树维护的是此区间内第一个出现的黑点。因为是单点修改,所以标记下传啥的都不需要~~直接上区间最值线段树。 如果白点的话就赋值INF,防止参与查询。 树剖后用线段树来维护,维护最小值,
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P3178 一定要用LL !!!!!
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P4315 思路: 我们发现,一个点最多只有一个父亲结点,那么我们就可以考虑把这个点与其父亲结点之间边的边权转化为这个点的点权!那,之后,就变成了我们一开始说的树链剖分裸题了呀!还有一个非常重要的细节就是树链剖分查询和修改路径的时
阅读全文
摘要:1 #include <stdio.h> 2 #include <cstring> 3 #include <iostream> 4 #include <string> 5 #include <algorithm> 6 #include <queue> 7 #include <vector> 8 #include <math.h> 9 #include <map> 10 11 #define LL
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P3373 讲讲优先级的问题: 1. 加法和乘法顺序不一样会导致不同的结果 比如: (a+b)c 不等于 ac + b 而在记录懒标记的时候,加法和乘法两种标记放到一起,并不知道哪个先,哪个后。 所以要确定一个优先级 我们分析一下
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P2590 注意这题有负权。 (不然你就只能跑10分!)
阅读全文
摘要:题目链接:https://www.luogu.org/problem/P3833
阅读全文

浙公网安备 33010602011771号