上一页 1 ··· 6 7 8 9 10
摘要: 关于线段树 线段数是一种区间树 可以看出:叶子即为输入的数 假设一个节点为 x ,则其左儿子为 2x 右儿子为 2x+1 操作解析 约定 | 变量名 | 意义 | | | : : | | input[] | 输入的数 | | t[] | 线段树 | 其中 t[] 是个结构体,包含左边界 l ,右边界 阅读全文
posted @ 2020-05-09 16:42 小蒟蒻laf 阅读(716) 评论(0) 推荐(1)
摘要: 前面我们对平衡树有了个大概的了解 关于 Treap Treap=Binary Search Tree + Heap 二叉搜索树 + 二叉堆(一般是小根堆) Treap 每一个节点有两个值 一个值是平衡树的值,一个值是随机的(用于堆来保持平衡) 二叉堆的性质使其保持平衡 关于 FHQ Treap 这个 阅读全文
posted @ 2020-05-06 11:50 小蒟蒻laf 阅读(840) 评论(0) 推荐(2)
摘要: 平衡树的性质 它其实就是一个 BST(Binary Search Tree 二叉搜索树)。 当然,不同的平衡树会有自己的特性 BST 的性质 只有一个:任意一个节点的左子树的所有节点都比它的优先级高,右子树的所有节点都比他的优先级低。 注意:一个节点也可以当成一颗子树 如下: Why 平衡树? 看到 阅读全文
posted @ 2020-05-06 11:48 小蒟蒻laf 阅读(518) 评论(0) 推荐(1)
摘要: 关于树状数组 树状数组,即 Binary Indexed Tree ,主要用于维护查询前缀和 属于 log 型数据结构 和线段树比较 都是 log 级别 树状数组常数、耗费的空间、代码量都比线段树小 树状数组无法完成复杂的区间操作,功能有限 树状数组介绍 二叉树大家一定不陌生 然而真实的树状数组省去 阅读全文
posted @ 2020-05-02 13:12 小蒟蒻laf 阅读(497) 评论(0) 推荐(0)
摘要: IO 的进化史 cin和cout 刚开始学的时候,老师叫我们用 cin 和 cout 大概是因为这最简单吧 cin>>x; cout<<x scanf和printf 学到函数了,老师开始让我们用 scanf 和 printf 也许是这样更方便吧 scanf("%d",&x); printf("%d" 阅读全文
posted @ 2020-04-29 10:13 小蒟蒻laf 阅读(256) 评论(0) 推荐(0)
摘要: 二叉堆的性质 编号 性质 1 二叉堆是一棵完全二叉树 2 二叉堆的任意一个节点的优先级一定大于其两个子节点的 3 如果一个节点的下标为 x ,则其左孩子的下标为 2x ,右孩子的下标为 2x+1 操作和时间复杂度 操作 时间复杂度 插入 \(O(\log n)\) 弹出 \(O(\log n)\) 阅读全文
posted @ 2020-04-18 14:41 小蒟蒻laf 阅读(247) 评论(1) 推荐(0)
上一页 1 ··· 6 7 8 9 10