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 < ...
随机推荐
- WebSocket前后端实现
websocket.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- hive语句on和where一点小问题
hive join 后面必须=(0.13版本后支持,不支持like,<>),on后面如需加条件语句必须放到where中不然会产生错误结果 (可以一对多,一对一,不可以多对多‘会出现数据翻倍 ...
- ES6中async和await说明和用法
昨天看了一篇vue的教程,作者用async/ await来发送异步请求,从服务端获取数据,代码很简洁,同时async/await 已经被标准化,是时候学习一下了. 先说一下async的用法,它作为一个 ...
- 利用CSS使footer固定在页面底部
1.HTML基本结构 <!DOCTYPEhtml> <htmlxmlns="http://www.w3.org/1999/xhtml"> <headr ...
- [Vue CLI 3] @vue/cli-plugin-eslint 源码分析
熟悉 eslint-loader 的同学一般如下配置: 设置一下几项: test : A condition that must be met(一般是处理对应文件的正则) exclude : A co ...
- Android4.0以上源码中的DiskLruCache类简介
/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache License, Versi ...
- linux下的OpenCV安装&学习笔记
http://www.linuxdiyf.com/viewarticle.php?id=20731 (本想在fedora下安装编译的,但目前opencv官网.sourceforge等网站都无法访问下载 ...
- 一个挺好用的自己写的小插件(用与把一般的图片转换成预制)——UNITY3D
首先 下载一个DLL文件,名字:System.Windows.Forms. 然后把这个文件放在资源目录,位置随便. 接着上代码 : using System.IO; using UnityEditor ...
- docker-ce 安装和卸载
一.按照官网给的安装方法进行Ubuntu16.04 docker-ce 的安装,步骤如下: 1.由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get ...
- react-jd-index
看见一些代码的产物,会觉得非常的漂亮~感谢无私开源的程序员们~你们是最可爱的人儿~~ //index.jsx require('./app/lib/common.css'); import React ...