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 < ...
随机推荐
- MySQLDemo2
-- 查询所有数据库 show databases -- 删除数据库 drop database a -- use `数据库名称`; 表示使用此数据库 use mybatis -- 查看表结构 sho ...
- Phpstrom学习笔记
1.用*标识编辑过的文件 File - Editor – General - Editor Tabs 选中Mark modifyied tabs with asterisk
- screen 基础用法(转)
####################### 屏幕分割 ######################## 1. screen2. Ctrl-a c # create a new screen3 ...
- 【JZOJ4461】【GDOI2016模拟4.21】灯塔 分治
题面 GDOI是一个地处丘陵的小国,为了边防建设,国王希望在国界线上的某一座山峰上建立一座灯塔,照亮整个边界.而灯塔建设的调研工作,就交给了你. GDOI的国境线上有N座连续的山峰,其中第i座的高度是 ...
- Android——app基础
Android Application基础 系统启动过程 APK文件介绍 APK是Android Package的缩写,即android安装包.APK 文件其实是zip 格式,但后缀名被修改为apk ...
- hive-oracle-常用分析函数-窗口函数
常用的分析函数如下所列: row_number() over(partition by ... order by ...)rank() over(partition by ... order by . ...
- webserver的性能问题,一语道破真谛
一直纠结我们要大减的paas平台需要支持多大的并发数. 看到一个网友所说的,恍然大悟,按原有我的理解和要求,并发达到w级 req/s,已经是非常高的要求了,单纯从软件上是很难实现的,一定要以来硬件上的 ...
- IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性
http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有 ...
- day38 21-今天的内容总结
以前我们在web层里面去调Service再在Service里面去调DAO是一路new过去的,在web层里面new Service,然后在Service里面new DAO.每次你都需要主动去找这个对象. ...
- [java]java构造器 标签: java面向对象 2017-06-11 11:16 195人阅读 评论(12)
构造器这个概念,各种语言都有出现,虽然为了考试或者其他学了好多遍,但是自己一直不能理解这个概念,前几天又学了一遍,突然就明白了,下面随小编来一起学习一下吧. 什么是构造器? 在类别基础的面向对象程序设 ...