P3369 【模板】普通平衡树

题目通道\]([【模板】普通平衡树 - 洛谷](https://www.luogu.com.cn/problem/P3369 "【模板】普通平衡树 - 洛谷")) ```cpp #include using namespace std; const int maxn=1e7; #define int long long struct node { int l; int r; int val; int sval; int size; }; node tree[maxn]; int root=0; int idx=0; void newnode(int &x,int v) { x=++idx; tree[idx].val=v; tree[idx].sval=rand(); tree[idx].size=1; } void pushup(int pos) { tree[pos].size=tree[tree[pos].l].size+tree[tree[pos].r].size+1; } void split(int pos,int val,int &x,int &y)//按值分裂,取决于树的路径长,O(log n) { if(!pos) { x=y=0; return; } if(tree[pos].val<=val) { x=pos; split(tree[x].r,val,tree[x].r,y); pushup(x); } else { y=pos; split(tree[y].l,val,x,tree[y].l); pushup(y); } } int merge(int x,int y)//只需要考虑两棵树根节点的大小,因为它们内部都是有序的。返回值为新树的根节点,O(log n) { if(!x||!y)return x+y; if(tree[x].sval>n; for(int i=1;i<=n;i++) { cin>>op>>s; if(op==1) { ins(s); } if(op==2) { del(s); } if(op==3) { cout<

相关推荐
郝学胜-神的一滴1 小时前
深入解析Python字典的继承关系:从abc模块看设计之美
网络·数据结构·python·程序人生
半桔1 小时前
【IO多路转接】高并发服务器实战:Reactor 框架与 Epoll 机制的封装与设计逻辑
linux·运维·服务器·c++·io
HABuo2 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
我在人间贩卖青春2 小时前
C++之多重继承
c++·多重继承
颜酱2 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
m0_736919103 小时前
C++代码风格检查工具
开发语言·c++·算法
yugi9878383 小时前
基于MATLAB强化学习的单智能体与多智能体路径规划算法
算法·matlab
DuHz3 小时前
超宽带脉冲无线电(Ultra Wideband Impulse Radio, UWB)简介
论文阅读·算法·汽车·信息与通信·信号处理
Polaris北极星少女3 小时前
TRSV优化2
算法
代码游侠4 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法