【模板】非旋Treap
数组版
struct node {int son[2];int val, s;int v;node() {son[0] = son[1] = 0;s = 0;val = rand();}
}t[100001];
void push_up(int p) {t[p].s = t[t[p].son[0]].s + t[t[p].son[1]].s + 1;
}
void split_v(int p, int v, int &x, int &y) {if(!p)return void(x = y = 0);if(t[p].v>v) {y = p;split_v(t[p].son[0], v, x, t[p].son[0]);}else {x = p;split_v(t[p].son[1], v, t[p].son[1], y);}push_up(p);
}
void split_k(int p, int k, int &x, int &y) {if(!p)return void(x = y = 0);if(k <= t[t[p].son[0]].s) {y = p;split_k(t[p].son[0], k, x, t[p].son[0]);}else {x = p;split_k(t[p].son[1], k - t[t[p].son[0]].s - 1, t[p].son[1], y);}push_up(p);
}
int merge(int x, int y) {if(! x || ! y)return x + y;if(t[x].val < t[y].val) {t[x].son[1] = merge(t[x].son[1], y);push_up(x);return x;}else {t[y].son[0] = merge(x, t[y].son[0]);push_up(y);return y;}
}
int tot=0;
int new_node(int v) {t[++tot].v = v;t[tot].s=1;return tot;
}
int root=0;
转载于:https://www.cnblogs.com/akakw1/p/9877579.html
【模板】非旋Treap相关推荐
- 非旋treap套线段树
BZOJ3065. 去年用pascal 块链过了.. 今年来试了试非旋treap大法 注定被块链完爆 代码留这. 第一份 :辣鸡的 垃圾回收做法 跑得极慢 1 #include <bit ...
- FHQ-Treap(非旋treap/平衡树)——从入门到入坟
作者:hsez_yyh 链接: FHQ-Treap--从入门到入坟_hsez_yyh的博客-CSDN博客 来源:湖北省黄石二中信息竞赛组 著作权归作者所有.商业转载请联系作者获得授权,非 ...
- 【20181026T2】**图【最小瓶颈路+非旋Treap+启发式合并】
题面 [错解] 最大最小?最小生成树嘛 蛤?还要求和? 点分治? 不可做啊 写了个MST+暴力LCA,30pts,140多行 事后发现30分是给dijkstra的 woc [正解] 树上计数问题:①并 ...
- P4847 银河英雄传说V2 非旋treap
传送门 文章目录 题意: 思路: 题意: 思路: 让我们分析一下题目需要实现什么操作: (1)(1)(1)将某个序列放到某个的后面,也就是合并两个序列. (2)(2)(2)将一个序列从某处断开. (3 ...
- 带旋treap概念及模板,带例题:普通平衡树
带旋Treap 二叉查找树BST(Binary Search Tree)定义 Treap定义 模板合集(均为O(logn)O(logn)O(logn)) push_up模板 旋转模板 插入模板 删除模 ...
- [非旋平衡树]fhq_treap概念及模板,例题:普通平衡树,文艺线段树
文章目录 概念 全套模板 push_up模板 split拆树模板(按权值拆) split拆树模板(按个数拆) merge合并模板(地址版) merge合并模板(带返回根) 区间模板 insert插入模 ...
- luoguP5055 【模板】可持久化文艺平衡树 可持久化非旋转treap
luoguP5055 [模板]可持久化文艺平衡树 可持久化非旋转treap 好题. Code: #include<bits/stdc++.h> using namespace std; # ...
- 无旋treap的简单思想以及模板
因为学了treap,不想弃坑去学splay,终于理解了无旋treap... 好像普通treap没卵用...(再次大雾) 简单说一下思想免得以后忘记.普通treap因为带旋转操作似乎没卵用,而无旋tre ...
- 模板:无旋treap
文章目录 前言 操作 合并 分裂 插入 删除 查找第k大 查询x的排名 前驱后继 完整代码 所谓无旋treap,就是不带旋转的treap 前言 现在"理论上"我会四种平衡树了 之前 ...
最新文章
- PHP开发中,让var_dump调试函数输出更美观 ^_^#
- 设计模式之工厂方法模式(Factory Method)摘录
- hibernate映射简单实例
- 正则表达式:(mysql)REGEXP
- 2.6内核的配置与编译
- 在Windows系统中配置Google AddressSanitizer
- spark-2.1.0 集群安装
- 倒计时小工具_这款高颜值的 APP 可以让小仙女/男神们的日子过得更精致
- 新手入门:史上最全Web端即时通讯技术原理详解
- 95-235-065-源码-task-SourceStreamTask
- 大乐透python预测程序_Python生成随机验证码,大乐透号码
- python获取sap数据_python 连接 SAP HANA 数据库
- 李洪强iOS开发之XMPP
- 速达5000维护服务器,财务软件速达5000为什么连不上服务器
- 一个事物两个方面的对比举例_写compare contrast essay如何对比两个事物/人物
- 阿里副总裁贾扬清回应:确认离职,或投身AI架构创业!
- 手机通过adb工具安装应用
- 数字图像处理:数值图像的文件格式总结
- office2016套装Outlook设置
- Python机器学习13——主成分分析
热门文章
- python中颜色介意用数字表示_利用Python实现颜色色值转换的小工具
- 可自定义匹配规则查找控件_懂Excel轻松入门Python数据分析包pandas(二十八):二分法查找...
- wh计算公式_“笔记本”电池里的mAh和Wh有啥区别
- 贪婪洞窟2服务器维护,12月19日贪婪洞窟2停服维护公告 贪婪洞窟2更新了什么
- SQLi LABS Less-29
- Python随机梯度下降法(一)
- 我的世界基岩版json_我的世界基岩版下载_我的世界基岩版app下载_我的世界基岩版官网最新版下载-新手游网...
- win7充当无线路由器
- 【11】 Express安装入门与模版引擎ejs
- Debug在中Eclipse的应用