zoukankan      html  css  js  c++  java
  • 暂且叫它-"蒙伪树"-吧-

    今天我看到ooo聚聚画线段树,但是ta画的不是很好,于是本人饶有兴趣的研究了那棵无聊的树。

    但是它并不满足树的性质,于是命名为伪树。

    为了防止太弱和别的巨型数据结构撞名导致尴尬,于是又挂了自己$id$的一部分,叫"蒙伪树"($ ext{Miemeng's Erroneous Tree}$)可以简称$ ext{MET}$。

    其实是样辉三角?

    我伪了。

    先来张图:

    1

    有啥用:

    显然没啥用,可以用上面多的要命的节点维护区间最值,或是一些其他的信息。

    时间复杂度:

    建树:$O(N^2)$

    查询:$O(1)$

    修改:$O(N)$

    所以它是暴力,恩?

    空间复杂度:

    $O(N^2)$

    (为什么我不开二维数组?)

    一些乱七八糟的性质:

    1>

    2

    当我们将$LCA$的编号标记为两个数取平均值后的值,这样每一个值就控制了一些点。

    这样就可以建一棵新树。

    3

    别问我为什么又画了一个(上面的图太丑了,而且我把它丢了)

    这样就变成前缀和啦,所以我们可以得出结论,前缀和是对$ ext{MET}$的优化(其实$ ext{MET}$是对大部分数据结构的劣化(捂脸

    于是对前缀和进行位运算优化,得到树状数组。

    然后我们发现里面有很多点是无效的,于是删除一些节点。

    4

    发现它(像)是线段树。

    于是我们又得出结论,线段树也是对$ ext{MET}$的优化。

    最后我扯一句,如果用倍增优化可以把$ ext{MET}$优化成$ ext{ST}$表。

    好,终于扯完了。

    (话说这么一个暴力我扯一篇博客??)

    导图:

    5

  • 相关阅读:
    Java基础面试题总结-编程题总结
    Linux下mysql的安装与卸载并且连接navicat详解(亲测可用)
    linux 下安装redis
    linux 下安装tomcat
    Linux系统下安装jdk及环境配置(两种方法)
    Servlet概述
    多线程之volatile关键字
    多线程之ThreadLocal
    多线程之synchronized实现原理
    线程池2
  • 原文地址:https://www.cnblogs.com/marmot-cage/p/11779169.html
Copyright © 2011-2022 走看看