随笔分类 -  数据结构 平衡树 treap

该文被密码保护。
posted @ 2018-03-05 10:15 ONION_CYC 阅读(6) 评论(0) 推荐(0)
摘要:【旋转】 平衡树中的旋转是指在不改变中序遍历的前提下改变树的形态的方式。(中序遍历=排名顺序) 右旋将当前点的左节点旋上来,左旋反之。(图侵删) 原根k,新根o。 1.把k的左节点o解放出来并更新为o的右节点。 2.解放出来的o成为新根,其右孩子赋为k。 【Treap】树堆 功能:维护支持单点插入和 阅读全文
posted @ 2017-11-27 13:51 ONION_CYC 阅读(936) 评论(0) 推荐(1)
摘要:【题意】 1. 插入x数 2. 删除x数(若有多个相同的数,因只删除一个) 3. 查询x数的排名(若有多个相同的数,因输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为小于x,且最大的数) 6. 求x的后继(后继定义为大于x,且最小的数) 【算法】平衡树(treap) 重要的细节 阅读全文
posted @ 2017-11-24 14:04 ONION_CYC 阅读(275) 评论(0) 推荐(1)
摘要:【平衡树】★平衡树 by onion_cyc 【莫队算法】 问题:给定长度为n的序列和m个区间询问,支持快速增减相邻元素维护区间信息。 将询问按左端点分块,块大小为$Q=\frac{n}{\sqrt m}$,块内按右端点排序。 然后依次回答询问,需要O(1)从(l,r)转移到(l,r+1),(l,r 阅读全文
posted @ 2017-03-25 17:10 ONION_CYC 阅读(849) 评论(0) 推荐(0)
摘要:【算法】平衡树(treap)||双向链表 【题解】treap知识见数据结构。 #include<cstdio> #include<algorithm> #include<ctime> using namespace std; const int maxn=100010,inf=0x3f3f3f3f; 阅读全文
posted @ 2017-02-10 20:23 ONION_CYC 阅读(243) 评论(0) 推荐(0)
摘要:【算法】平衡树(treap) 【题解】 treap知识见数据结构。 解法,具体细节见程序。 #include<cstdio> #include<algorithm> #include<ctime> using namespace std; const int maxn=100010; struct 阅读全文
posted @ 2017-02-08 21:28 ONION_CYC 阅读(203) 评论(0) 推荐(0)
摘要:【算法】平衡树(treap) 【题解】treap知识见数据结构 在POJ把语言从G++换成C++就过了……??? #include<cstdio> #include<algorithm> #include<ctime> using namespace std; const int maxn=5001 阅读全文
posted @ 2017-02-07 21:37 ONION_CYC 阅读(406) 评论(0) 推荐(0)
摘要:【算法】 【算法】网络流 【算法】树 【算法】数学 ————【专题】生成树计数(矩阵树定理) ————【专题】计数问题(排列组合,容斥原理,卡特兰数) ————【算法专题】卡特兰数(计数数列) ————【专题】数论 ————【专题】概率和期望 【算法】动态规划 【算法】数据结构 ————【专题】平衡 阅读全文
posted @ 2016-08-10 21:08 ONION_CYC 阅读(2144) 评论(0) 推荐(6)