#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留坑的更多相关文章

  1. CPU虚拟化技术(留坑)

    留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚 ...

  2. 【留坑】uva12299

    这么sb的题本来想练练手记过就是过不了 拍半天也没问题 留坑 哪天有空了去linux下面试试 #include<cstdio> #include<cstring> #inclu ...

  3. 【问题解决方案】Git bash进入多层子目录问题(通配符问题留坑)

    cd进入指定路径下:cd 斜杠 斜杠 方法一: 1- 撇丿,不是"那",盘符前面要加上 / (d盘前面也加,不加也行) 2- 路径名不区分大小写 3- 不用空格 4- 如果目录名中 ...

  4. 2.18比赛(T2,T3留坑)

    2.18比赛(T2,T3留坑) pdf版题面 pdf版题解 超越一切(ak) [题目描述] 夏洛可得到一个(h+1)×(w+1)的巧克力,这意味着她横着最多可 以切 h 刀,竖着最多可以切 w 刀 她 ...

  5. [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)

    A - ACM Computer Factory 题目描述:某个工厂可以利用P个部件做一台电脑,有N个加工用的机器,但是每一个机器需要特定的部分才能加工,给你P与N,然后是N行描述机器的最大同时加工数 ...

  6. 题解 queen(留坑)

    传送门 博客园突然打不开了,奇奇怪怪的-- 少写个等号没看出来 nm写反了没看出来 考完5min全拍出来了 手残属性加持 不对拍等于爆零 yysy,我连卢卡斯定理的存在都忘了-- 发现要让一大堆皇后能 ...

  7. 题解 Six(留坑)

    传送门 考场上搞了个三进制状压,结果正确性假了-- 有想到从约数下手,但觉得就光预处理约数复杂度就爆炸就没往这边想-- 首先是关于约数个数的证明,再一次感谢战神: 因为 \(n = \prod p_i ...

  8. 题解 c(留坑)

    传送门 这题卡常--而且目前还没有卡过去 首先以原树重心为根,向所有子树重心连边,可以建立一棵点分树 点分树有两个性质: 一个是树高只有log层 另一个是两点在点分树上的lca一定在原树上两点间的树上 ...

  9. C++学习记录(留坑)

    #include <iostream> #include <ctime> #include <fstream> ///文件打开有o.i权限 #include < ...

随机推荐

  1. MySQLDemo2

    -- 查询所有数据库 show databases -- 删除数据库 drop database a -- use `数据库名称`; 表示使用此数据库 use mybatis -- 查看表结构 sho ...

  2. Phpstrom学习笔记

    1.用*标识编辑过的文件 File - Editor – General - Editor Tabs 选中Mark modifyied tabs with asterisk

  3. screen 基础用法(转)

    ####################### 屏幕分割 ######################## 1. screen2. Ctrl-a c    # create a new screen3 ...

  4. 【JZOJ4461】【GDOI2016模拟4.21】灯塔 分治

    题面 GDOI是一个地处丘陵的小国,为了边防建设,国王希望在国界线上的某一座山峰上建立一座灯塔,照亮整个边界.而灯塔建设的调研工作,就交给了你. GDOI的国境线上有N座连续的山峰,其中第i座的高度是 ...

  5. Android——app基础

    Android Application基础 系统启动过程 APK文件介绍 APK是Android Package的缩写,即android安装包.APK 文件其实是zip 格式,但后缀名被修改为apk  ...

  6. hive-oracle-常用分析函数-窗口函数

    常用的分析函数如下所列: row_number() over(partition by ... order by ...)rank() over(partition by ... order by . ...

  7. webserver的性能问题,一语道破真谛

    一直纠结我们要大减的paas平台需要支持多大的并发数. 看到一个网友所说的,恍然大悟,按原有我的理解和要求,并发达到w级 req/s,已经是非常高的要求了,单纯从软件上是很难实现的,一定要以来硬件上的 ...

  8. IOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性

    http://blog.csdn.net/yixiangboy/article/details/50662704 一.案例演示 最近有一个小需求,就是要做一个圆形进度条,大概样子如下: . 在不知道有 ...

  9. day38 21-今天的内容总结

    以前我们在web层里面去调Service再在Service里面去调DAO是一路new过去的,在web层里面new Service,然后在Service里面new DAO.每次你都需要主动去找这个对象. ...

  10. [java]java构造器 标签: java面向对象 2017-06-11 11:16 195人阅读 评论(12)

    构造器这个概念,各种语言都有出现,虽然为了考试或者其他学了好多遍,但是自己一直不能理解这个概念,前几天又学了一遍,突然就明白了,下面随小编来一起学习一下吧. 什么是构造器? 在类别基础的面向对象程序设 ...