zoukankan      html  css  js  c++  java
  • 平衡树总结专题

    ...首先我只会打Splay(伸展树),并不知道treap什么的...

    而且没有系统的看过...只是看的一本名叫《高级数据结构》的书...

    不过做题做了很多经典的了...

    觉得这个东西主要还是看题目的需求吧。

    平衡树首先比较适合的操作有插入删除,也可以像线段树一样加tag

    一般只有两种情况:一是按照数值排序建立二叉树,二是按照序列的下标顺序建立二叉树。

    对于第一种建树方法:常见的有求第k大的数,求前驱和后继,求最大最小值[这个用第二种也可以]。这个主要利用的还是二叉搜索树的性质和splay让二叉树保证结构稳定。

    第二种建树方法:更多就在区间操作上了,例如翻转[这个比较特殊],同时加上数或同时赋成一个值。这个利用的就是splay完成的寻找区间操作以及树结构独特的标记色彩。

    所以第一步办好了后面的事就是注意细节和看清题目了。

    数据结构题非常容易犯细节错误——代码冗长....

    我自己犯过的错误:

    1.总是将儿子交代好,却忘记了儿子的父亲没赋值[主要体现在初始化数组的时候...]

    2.下传标记忘记清空标记[线段树打少了...]

    3.虚拟节点的标号搞不清[要知道其它节点因为它而变化了多少]

    4.数组开小,忘记回收[这个还是没看清题的缘故...]

  • 相关阅读:
    MySQL优化查询语句Explain
    Spring Kafka(二)操作Topic以及Kafka Tool 2的使用
    集群作业管理OpenPBS与OpenPBS Interface Library
    OpenPBS 脚本样本 非常值得参考
    mpirun 与 PBS 问题
    MPIRUN 与 PBS 脚本
    什么是IA架构服务器
    集群的管理pbs
    软件包 javax.servlet 不存在
    An introduction to PORTABLE BATCH SYSTEM
  • 原文地址:https://www.cnblogs.com/Robert-Yuan/p/5090285.html
Copyright © 2011-2022 走看看