2-3-4 tree留坑
#include<bits/stdc++.h>
#define LL long long
#define pii pair<int,int>
#define mp make_pair
using namespace std;
const int maxx = 2e5+;
const double alpha = 0.75;
struct node{
int l,ml,mr,r;
int val[];
int size;
int fa;
}tree[maxx];
int cnt=;
int root;
int newnode(int w,int fa){
tree[++cnt].size=;
tree[cnt].val[]=w;
tree[cnt].fa=fa;
return cnt;
}
int inserts(int rt,int w){
int fa;
if (tree[rt].size==){
if (rt==root){
root=newnode(tree[rt].val[],-);
rt=root;
tree[root].l=newnode(tree[rt].val[],root);
tree[root].ml=newnode(tree[rt].val[],root);
tree[tree[root].l].l=tree[rt].l;
tree[tree[root].l].ml=tree[rt].ml;
tree[tree[root].ml].l=tree[rt].mr;
tree[tree[root].ml].ml=tree[rt].r;
}else {
int fa=tree[rt].fa;
if (tree[fa].size==){
if (tree[rt].val[]<tree[fa].val[]){
tree[fa].mr=tree[fa].ml; tree[fa].ml=newnode(tree[rt].val[],fa);
tree[tree[fa].ml].l=tree[rt].mr;
tree[tree[fa].ml].ml=tree[rt].r; tree[fa].l=newnode(tree[rt].val[],fa);
tree[tree[fa].l].l=tree[rt].l;
tree[tree[fa].l].ml=tree[rt].ml; tree[fa].val[]=tree[fa].val[];
tree[fa].val[]=tree[rt].val[]; }else {
tree[fa].val[]=tree[rt].val[];
tree[fa].ml=newnode(tree[rt].val[],fa);
tree[fa].mr=newnode(tree[rt].val[],fa);
tree[tree[fa].ml].l=tree[rt].l;
tree[tree[fa].ml].ml=tree[rt].ml;
tree[tree[fa].mr].l=tree[rt].mr;
tree[tree[fa].mr].mr=tree[rt].r;
}
}else if (tree[fa].size==){
if (tree[rt].val[]<tree[fa].val[]){
tree[fa].val[]=tree[fa].val[];
tree[fa].val[]=tree[fa].val[];
tree[fa].val[]=tree[rt].val[];
tree[fa].r=tree[fa].mr;
tree[fa].mr=tree[fa].ml;
tree[fa].ml=newnode(tree[rt].val[],fa);
tree[fa].l=newnode(tree[rt].val[],fa);
tree[tree[fa].ml].l=tree[rt].mr;
tree[tree[fa].ml].ml=tree[rt].r;
tree[tree[fa].l].l=tree[rt].l;
tree[tree[fa].l].ml=tree[rt].ml;
}else if (tree[rt].val[]<tree[fa].val[]){
tree[fa].val[]=tree[fa].val[];
tree[fa].val[]=tree[rt].val[];
tree[fa].r=tree[fa].mr;
tree[fa].ml=newnode(tree[rt].val[],fa);
tree[fa].mr=newnode(tree[rt].val[],fa);
tree[tree[rt].ml].l=tree[rt].l;
tree[tree[rt].ml].ml=tree[rt].ml;
tree[tree[rt].mr].l=tree[rt].mr;
tree[tree[rt].mr].mr=tree[rt].r;
}else {
tree[fa].val[]=tree[rt].val[];
tree[fa].mr=newnode(tree[rt].val[],fa);
tree[fa].r=newnode(tree[rt].val[],fa);
tree[tree[fa].mr].l=tree[rt].l;
tree[tree[fa].mr].ml=tree[rt].ml;
tree[tree[fa].r].l=tree[rt].ml;
tree[tree[fa].r].ml=tree[rt].mr;
}
}
}
}
rt=fa;
if (w<tree[rt].val[]) }
int main(){
scanf("%d")
return ;
}
2-3-4 tree留坑的更多相关文章
- CPU虚拟化技术(留坑)
留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚 ...
- 【留坑】uva12299
这么sb的题本来想练练手记过就是过不了 拍半天也没问题 留坑 哪天有空了去linux下面试试 #include<cstdio> #include<cstring> #inclu ...
- 【问题解决方案】Git bash进入多层子目录问题(通配符问题留坑)
cd进入指定路径下:cd 斜杠 斜杠 方法一: 1- 撇丿,不是"那",盘符前面要加上 / (d盘前面也加,不加也行) 2- 路径名不区分大小写 3- 不用空格 4- 如果目录名中 ...
- 2.18比赛(T2,T3留坑)
2.18比赛(T2,T3留坑) pdf版题面 pdf版题解 超越一切(ak) [题目描述] 夏洛可得到一个(h+1)×(w+1)的巧克力,这意味着她横着最多可 以切 h 刀,竖着最多可以切 w 刀 她 ...
- [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)
A - ACM Computer Factory 题目描述:某个工厂可以利用P个部件做一台电脑,有N个加工用的机器,但是每一个机器需要特定的部分才能加工,给你P与N,然后是N行描述机器的最大同时加工数 ...
- 题解 queen(留坑)
传送门 博客园突然打不开了,奇奇怪怪的-- 少写个等号没看出来 nm写反了没看出来 考完5min全拍出来了 手残属性加持 不对拍等于爆零 yysy,我连卢卡斯定理的存在都忘了-- 发现要让一大堆皇后能 ...
- 题解 Six(留坑)
传送门 考场上搞了个三进制状压,结果正确性假了-- 有想到从约数下手,但觉得就光预处理约数复杂度就爆炸就没往这边想-- 首先是关于约数个数的证明,再一次感谢战神: 因为 \(n = \prod p_i ...
- 题解 c(留坑)
传送门 这题卡常--而且目前还没有卡过去 首先以原树重心为根,向所有子树重心连边,可以建立一棵点分树 点分树有两个性质: 一个是树高只有log层 另一个是两点在点分树上的lca一定在原树上两点间的树上 ...
- C++学习记录(留坑)
#include <iostream> #include <ctime> #include <fstream> ///文件打开有o.i权限 #include < ...
随机推荐
- 神奇的CSS形状
在StackOverflow上有这么一个问题,有位同学在 http://css-tricks.com/examples/ShapesOfCSS/ 找到一些使用CSS做的形状,其中一位同学对下面的这个形 ...
- Linux下安装jboss并设置自启动服务
一.JDK和JBOSS下载jdk:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm ...
- ZOJ3195 Design the city [2017年6月计划 树上问题04]
Design the city Time Limit: 1 Second Memory Limit: 32768 KB Cerror is the mayor of city HangZho ...
- vue 项目重定向时需要传参数
1.在项目首页路由因需要进行传参数,例如需要重定向到:path: "/index?from=0" 2.重定向时写法如下: redirect: {path: '/index',que ...
- c++中merge的操作
merge:将两个有序序列合并成一个新的序列,并对新的序列排序 所在库:<algorithm> 注意:排序规则必须和原序列规则相同.存储时下标从0开始. 函数参数:merge(first1 ...
- 几种支持REST的Java框架
目前宣称支持REST的Java框架包括以下这些: Restlet(http://www.restlet.org/) Cetia4(https://cetia4.dev.java.net/) Apach ...
- springboot-mybatis双数据源配置
yml文件 spring: datasource: test1: driverClassName: com.mysql.jdbc.Driver url: jdbc:mysql://localhost: ...
- IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结(转)
IntelliJ IDEA使用教程 (总目录篇) 首先,使用的时候,自己得先在电脑上安装个小乌龟.也就是svn啦. 第一步安装小乌龟. 如下: 具体安装好像没什么具体要求,一路next,就好. 如上图 ...
- 无线传感网络协议——Smart Mesh IP
前言: SmartMesh IP 专为实现 IP 兼容性而设计,并基于 6LoWPAN 和 802.15.4e 标准.SmartMesh IP 产品线实现了网络适应性.可靠性和可扩展性水平,并拥有高级 ...
- ChaosBlade 发布对 C++ 应用混沌实验的支持
前言 为满足 C++ 应用系统故障演练,阿里妈妈安全生产团队开源了 C++ 混沌实验执行器,填补了 C++ 应用混沌工程实验的空白,其遵循<混沌实验模型>,可通过 ChaosBlade 工 ...