数组版

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相关推荐

  1. 非旋treap套线段树

    BZOJ3065. 去年用pascal 块链过了.. 今年来试了试非旋treap大法   注定被块链完爆 代码留这. 第一份 :辣鸡的  垃圾回收做法  跑得极慢 1 #include <bit ...

  2. FHQ-Treap(非旋treap/平衡树)——从入门到入坟

    作者:hsez_yyh 链接: FHQ-Treap--从入门到入坟_hsez_yyh的博客-CSDN博客 来源:湖北省黄石二中信息竞赛组        著作权归作者所有.商业转载请联系作者获得授权,非 ...

  3. 【20181026T2】**图【最小瓶颈路+非旋Treap+启发式合并】

    题面 [错解] 最大最小?最小生成树嘛 蛤?还要求和? 点分治? 不可做啊 写了个MST+暴力LCA,30pts,140多行 事后发现30分是给dijkstra的 woc [正解] 树上计数问题:①并 ...

  4. P4847 银河英雄传说V2 非旋treap

    传送门 文章目录 题意: 思路: 题意: 思路: 让我们分析一下题目需要实现什么操作: (1)(1)(1)将某个序列放到某个的后面,也就是合并两个序列. (2)(2)(2)将一个序列从某处断开. (3 ...

  5. 带旋treap概念及模板,带例题:普通平衡树

    带旋Treap 二叉查找树BST(Binary Search Tree)定义 Treap定义 模板合集(均为O(logn)O(logn)O(logn)) push_up模板 旋转模板 插入模板 删除模 ...

  6. [非旋平衡树]fhq_treap概念及模板,例题:普通平衡树,文艺线段树

    文章目录 概念 全套模板 push_up模板 split拆树模板(按权值拆) split拆树模板(按个数拆) merge合并模板(地址版) merge合并模板(带返回根) 区间模板 insert插入模 ...

  7. luoguP5055 【模板】可持久化文艺平衡树 可持久化非旋转treap

    luoguP5055 [模板]可持久化文艺平衡树 可持久化非旋转treap 好题. Code: #include<bits/stdc++.h> using namespace std; # ...

  8. 无旋treap的简单思想以及模板

    因为学了treap,不想弃坑去学splay,终于理解了无旋treap... 好像普通treap没卵用...(再次大雾) 简单说一下思想免得以后忘记.普通treap因为带旋转操作似乎没卵用,而无旋tre ...

  9. 模板:无旋treap

    文章目录 前言 操作 合并 分裂 插入 删除 查找第k大 查询x的排名 前驱后继 完整代码 所谓无旋treap,就是不带旋转的treap 前言 现在"理论上"我会四种平衡树了 之前 ...

最新文章

  1. PHP开发中,让var_dump调试函数输出更美观 ^_^#
  2. 设计模式之工厂方法模式(Factory Method)摘录
  3. hibernate映射简单实例
  4. 正则表达式:(mysql)REGEXP
  5. 2.6内核的配置与编译
  6. 在Windows系统中配置Google AddressSanitizer
  7. spark-2.1.0 集群安装
  8. 倒计时小工具_这款高颜值的 APP 可以让小仙女/男神们的日子过得更精致
  9. 新手入门:史上最全Web端即时通讯技术原理详解
  10. 95-235-065-源码-task-SourceStreamTask
  11. 大乐透python预测程序_Python生成随机验证码,大乐透号码
  12. python获取sap数据_python 连接 SAP HANA 数据库
  13. 李洪强iOS开发之XMPP
  14. 速达5000维护服务器,财务软件速达5000为什么连不上服务器
  15. 一个事物两个方面的对比举例_写compare contrast essay如何对比两个事物/人物
  16. 阿里副总裁贾扬清回应:确认离职,或投身AI架构创业!
  17. 手机通过adb工具安装应用
  18. 数字图像处理:数值图像的文件格式总结
  19. office2016套装Outlook设置
  20. Python机器学习13——主成分分析

热门文章

  1. python中颜色介意用数字表示_利用Python实现颜色色值转换的小工具
  2. 可自定义匹配规则查找控件_懂Excel轻松入门Python数据分析包pandas(二十八):二分法查找...
  3. wh计算公式_“笔记本”电池里的mAh和Wh有啥区别
  4. 贪婪洞窟2服务器维护,12月19日贪婪洞窟2停服维护公告 贪婪洞窟2更新了什么
  5. SQLi LABS Less-29
  6. Python随机梯度下降法(一)
  7. 我的世界基岩版json_我的世界基岩版下载_我的世界基岩版app下载_我的世界基岩版官网最新版下载-新手游网...
  8. win7充当无线路由器
  9. 【11】 Express安装入门与模版引擎ejs
  10. Debug在中Eclipse的应用