决定把掌握不熟练或是模型见的少的知识点在这里列一列 希望能在自己AFO前成功get技能点吧…… 数据结构 1.fhq Treap/非旋式Treap (然而好像巨慢无比……) 2.替罪羊树 3.KD-Tree 4.可并堆 5.可持久化并查集 6.各种毒瘤向的可持久化(可持久化平衡树/可并堆),就当涨见 ...
分类:
其他好文 时间:
2018-08-17 21:31:32
阅读次数:
139
“左偏”树? 左偏树其实是一种可并堆,它可以 $O(log_2 n)$ 合并两个堆。 那左偏?也就是说他左边肯定有什么东西比右边大…… 别着急,在左偏树上有一个叫距离的东西: 个点的距离,被定义为它子树中离他最近的外节点到这个节点的距离(这与树的深度不同) 其中我们定义一个节点为外节点,当且仅当这个 ...
分类:
其他好文 时间:
2018-08-17 20:09:25
阅读次数:
128
本来A*就可以搞定的题,为了怕以后卡复杂度,找了个这么个方法 现阶段水平不够就不补充算法分析部分了 本题难度爆表,低级图论和高级数据结构的大综合 直接上代码了,以后学的多了再回过头来看方法 200多行幸亏没出什么调不出来的错误,唉,菜啊 ...
分类:
其他好文 时间:
2018-08-10 21:26:00
阅读次数:
214
数据结构 栈,队列,链表 ?哈希表,哈希数组 ?堆,优先队列 双端队列 可并堆 左偏堆 ?二叉查找树 Treap 伸展树 ?并查集 集合计数问题 二分图的识别 ?平衡二叉树 ?二叉排序树 ?线段树 一维线段树 二维线段树 ?树状数组 一维树状数组 N维树状数组 ?字典树 ?后缀数组,后缀树 ?块状链 ...
分类:
编程语言 时间:
2018-08-10 15:59:19
阅读次数:
175
题目连接:https://www.luogu.org/problemnew/show/P3377 include include include include using namespace std; const int maxn = 300001 + 10; struct Left_Tree{ ...
分类:
其他好文 时间:
2018-08-05 11:59:11
阅读次数:
153
左偏树: 左偏树(Leftist Tree)是一种可并堆的实现。左偏树是一棵二叉树,它的节点除了和二叉树的节点一样具有键值外,还有一个属性距离(dist)。距离指的是这个点到某个叶子结点的最短距离[性质1]节点的左子节点的距离不小于右子节点的距离。[性质2] 节点的距离等于它的右子节点的距离加1。( ...
分类:
其他好文 时间:
2018-07-25 22:04:28
阅读次数:
220
可并堆就是一种可以支持合并操作的堆,满足堆的性质,主要就是还要满足左子树比右子树要长,然后就直接进行合并操作的时候,直接连在上一个的右子树就行了。然后每次交换一下两个子树的位置(左右互换)。 直接粘贴板子代码。 ...
分类:
其他好文 时间:
2018-07-18 14:07:16
阅读次数:
151
题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数。接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆内,则无视此操作) 操作2: 2 x 输出第x个数所在的堆最小数,并将其删除(若第x个数已经被删除, ...
分类:
其他好文 时间:
2018-05-12 16:17:47
阅读次数:
163
"ref" cpp include include using namespace std; int n, m, a[100005], opt, uu, vv, fa[100005], ch[100005][2], dis[100005]; int myfind(int x){ while(fa[x ...
分类:
其他好文 时间:
2018-05-08 20:08:40
阅读次数:
176
算法分类合集 ACM 所有算法 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列双端队列可并堆左偏堆 二叉查找树Treap伸展树 并查集集合计数问题二分图的识别 平衡二叉树 二叉排序树 线段树一维线段树二维线段树 树状数组一维树状数组N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 ...
分类:
编程语言 时间:
2018-05-06 01:40:10
阅读次数:
228