首页 > 其他分享 >Nodgd 亲笔代码!!!

Nodgd 亲笔代码!!!

时间:2024-03-18 18:24:04浏览次数:20  
标签:亲笔 node insert int 代码 son Nodgd key hei

AVL:

#include <bits/stdc++.h>

using namespace std;

struct Node {
    int key;
    int son[2], hei;
} node[12345678];
int total;

struct AVL {
    int root;
    void update(int i) {
        node[i].hei = max(node[node[i].son[0]].hei, node[node[i].son[1]].hei);
    }
    void rotate(int &i, int c) {
        int j = node[i].son[c];
        node[i].son[c] = node[j].son[c ^ 1];
        node[j].son[c ^ 1] = i;
        update(i), update(j);
        i = j;
    }
    void __insert(int &i, int k) {
        if (!i) {
            i = k;
            return;
        }
        int c = node[i].key < node[k].key;
        __insert(node[i].son[c], k);
        if (node[node[i].son[c]].hei - node[node[i].son[c ^ 1]].hei >= 2) {
            rotate(i, c);
        }
    }
    void insert(int val) {
        int k = ++ total;
        node[k].key = val;
        node[k].hei = 1; 
        __insert(root, k);
    }
} T;

int main() {
    mt19937 Rand(1);
    for (int i = 1; i <= 1e7; i ++) {
        int x = Rand() >> 1;
        T.insert(x);
    }
    printf("clock=%d\n", clock());
    return 0;
}

Splay

#include <bits/stdc++.h>

using namespace std;

mt19937 Rand(1);
bitset<1 << 24> s;

int main() {
    for (int i = 1; i <= 1e7; i ++) {
        int x = Rand() >> 8;
        s[x] = 1;
    }
    printf("clock=%d\n", clock());
    return 0;
}

Treap

#include <bits/stdc++.h>

using namespace std;

mt19937 Rand(552);

struct Node {
    int key;
    int son[2], up;
} node[12345678];
int total;
    
struct Treap {
    int root;
    void rotate(int &i, int c) {
        int j = node[i].son[c];
        node[i].son[c] = node[j].son[c ^ 1];
        node[j].son[c ^ 1] = i;
        i = j;
    }
    void __insert(int &i, int k) {
        if (!i) {
            i = k;
            return;
        }
        int c = node[i].key < node[k].key;
        __insert(node[i].son[c], k);
        if (node[node[i].son[c]].up < node[i].up) {
            rotate(i, c);
        }
    }
    void insert(int val) {
        int k = ++ total;
        node[k].key = val;
        node[k].up = Rand(); 
        __insert(root, k);
    }
} T;

int main() {
    for (int i = 1; i <= 1e7; i ++) {
        int x = Rand() >> 1;
        T.insert(x);
    }
    printf("clock=%d\n", clock());
    return 0;
}

起因是明天我要做英语演讲,就找董王求了一份office。下载过程太长了,董王无聊,就开始写AVL,写完了又开始写Treap,因为Splay要存father所以懒得写了,就写了一个"S"play

标签:亲笔,node,insert,int,代码,son,Nodgd,key,hei
From: https://www.cnblogs.com/zhuzc/p/18081127

相关文章

  • 揭秘极致编程体验:代码背后的魔法世界
    想象一下,你手中有一把魔法棒,只需轻轻一挥,就能让计算机为你实现各种神奇的功能。其实,这把魔法棒就是编程语言,而你就是那位魔法师。今天,我们就来一起探索这个代码背后的魔法世界,看看如何创造一次极致的编程体验。编程:从0到1的创造之旅编程,简单来说,就是告诉计算机如何执行任务......
  • Java 代码执行本地命令
    byemanjusakafromhttps://www.emanjusaka.top/2024/03/java-exec-local-command彼岸花开可奈何本文欢迎分享与聚合,全文转载请留下原文地址。我们可以在命令行中执行各种命令,比如,创建文件、查看文件夹下文件、调用第三方工具等等。如果想在java代码中执行命令应该怎么......
  • jenkins与gradle与sonar集成自动化打包代码检测
    来源:https://juejin.cn/post/6844903536061317133服务器以ubuntu操作系统,服务器上已经安装jenkins,sonar服务,并且正常启动访问。本人主要介绍gitlab,fir与sonar如何与jenkins进行集成安装gradle插件并且配置ANROID_HOME,jdk,gradle路径Jenkins->系统管理->可选插件->......
  • 代码随想录算法训练营第23天|669. 修剪二叉搜索树|108.将有序数组转换为二叉搜索树|53
    代码随想录算法训练营第23天|669.修剪二叉搜索树|108.将有序数组转换为二叉搜索树|538.把二叉搜索树转换为累加树|总结篇669.修剪二叉搜索树这道题目比较难,比添加增加和删除节点难的多,建议先看视频理解。题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%A......
  • 代码随想录算法训练营第27天|39. 组合总和|40.组合总和II|131.分割回文串
    代码随想录算法训练营第27天|39.组合总和|40.组合总和II|131.分割回文串详细布置39.组合总和本题是集合里元素可以用无数次,那么和组合问题的差别其实仅在于startIndex上的控制题目链接/文章讲解:https://programmercarl.com/0039.%E7%BB%84%E5%90%88%E6%80%BB%E5%9......
  • 基于51单片机的波形发生器(5种,调频)原理图、流程图、物料清单、仿真图、源代码
    基于51单片机的波形发生器(5种,调频)设计一个单片机控制的信号发生器。用处理器系统的控制可用于生成各种波形,例如方波,三角波,锯齿波,正弦波等。可以调整信号发生器产生的波形的频率。信号波形可以通过软件更改。基本要求:(1)产生三种以上波形。如正弦波、三角波、矩形波等。......
  • 基于51单片机的波形发生器(4种,振幅,频率,相差)原理图、流程图、物料清单、仿真图、源代码
    基于51单片机的波形发生器(4种,振幅,频率,相差)双通道信号发生器1、可通过串口设置波形灯参数2、输出正弦波、方波、三角波或锯齿波3、波的类型、振幅、频率可调4、波的相位差可调#include<reg51.h>#include"absacc.h"#include"intrins.h"#include"lcd1602.h"......
  • leetcode代码记录(二分查找
    目录1.题目:2.我的代码:小结:1.题目:给定一个n个元素有序的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在nums中并且......
  • dea设置自动编译spring boot代码,idea代码修改后无须重启服务立即生效
    解决办法1:spring-boot-devtools<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><......
  • 代码随想录算法训练营第五十天 | 123. 买卖股票的最佳时机 III,188. 买卖股票的最佳时
    123.买卖股票的最佳时机III 已解答困难 相关标签相关企业 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购......