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<

相关推荐
AA陈超7 分钟前
ASC学习笔记0020:用于定义角色或Actor的默认属性值
c++·笔记·学习·ue5·虚幻引擎
coderxiaohan33 分钟前
【C++】仿函数 + 模板进阶
开发语言·c++
无敌最俊朗@1 小时前
力扣hot100-206反转链表
算法·leetcode·链表
Kuo-Teng1 小时前
LeetCode 279: Perfect Squares
java·数据结构·算法·leetcode·职场和发展
王哈哈^_^1 小时前
YOLO11实例分割训练任务——从构建数据集到训练的完整教程
人工智能·深度学习·算法·yolo·目标检测·机器学习·计算机视觉
檐下翻书1732 小时前
从入门到精通:流程图制作学习路径规划
论文阅读·人工智能·学习·算法·流程图·论文笔记
CoderYanger2 小时前
B.双指针——3194. 最小元素和最大元素的最小平均值
java·开发语言·数据结构·算法·leetcode·职场和发展·1024程序员节
SalvoGao2 小时前
Python学习 | 怎么理解epoch?
数据结构·人工智能·python·深度学习·学习
思成不止于此2 小时前
深入理解 C++ 多态:从概念到实现的完整解析
开发语言·c++·笔记·学习·多态·c++40周年
小曹要微笑3 小时前
STM32各系列时钟树详解
c语言·stm32·单片机·嵌入式硬件·算法