题意 求 \(n\) 个点的 Treap 深度为 \(h=0,1,2,\cdots,n\) 的概率. Treap 是一个随机二叉树,每个节点有权值和优先级,权值和优先级都是 \([0,1]\) 中的随机实数.niubi 的是,由于随机的实数精度足够高,你可以近似认为任意两个权值.任意两个优先级相同的概率是 \(0\). \(n\le 30000\) 题解 又是神题,我他吗都做不来 官方题解大概是这样,但本蒟蒻完全没看懂,于是只好向 scb 大佬请教了另一种思考方法(得到的 dp 式子一样). 考…
题目描述 \(\forall 0\leq i<n\),求有多少棵\(n\)个点,权值和优先级完全随机的treap的树高为\(i\). \(n\leq 30000\) 题解 设\(f_{i,j}\)为\(j\)个点的树,树高不超过为\(i\)的概率 \[ f_{i,j}=\frac{1}{j}\sum_{k=1}^{j}f_{i-1,j-1}\times f_{i-1,j-k} \] 枚举一个点左子树大小\(k-1\),那么右子树大小为\(j-k\).且这个点的优先级为这\(j\)个点最小的概率是…
题目大意:给你一个$[0,1]$之间等概率随机序列,你需要把这个序列插入到一棵$treap$中,问这棵$treap$的期望深度,请对于$[1,n]$中的每个深度分别输出它的概率(实数,保留五位小数). $treap$的优先级之也是在$[0,1]$中等概率随机出来的. ps:这个$[0,1]$的随机非常$niubi$,任意一个$[0,1]$间的实数被选中的概率是$0$ 这一题有一个很特殊的性质:两个序列都是等概率随机出来的. 在没有相同数的情况下,我们发现$treap$最终的形态跟数值插入的顺序是…
题目来源 https://leetcode.com/problems/validate-binary-search-tree/ Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node'…
树的题目,往往可以用到三种遍历.以及递归,因为其结构上天然地可以往深处递归,且判断条件也往往不复杂(左右子树都是空的). LeetCode 98题讲的是,判断一棵树是不是二叉搜索树. 题目中给的是标准定义:即一个二叉搜索树(binary search tree,简称BST)的每个节点都满足:1.其左侧的整个子树的值都比它小:2.其右侧的整个子树的值都比他大:3.它的左右子树依旧保持二叉搜索树的结构. 第0步 一开始理解错了条件,容易理解成,每个节点只需要比它的左子树大,比它的右子树小,于是得到了…
Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/recover-binary-search-tree著作权归领扣网络所有.商业转载请联系官方授权,非商业转载请注明出处. [题意分析] 对于一个BST应该了解的一个重…
题目描述: Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST. According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T tha…
二叉树(Binary Tree)是最简单的树形数据结构,然而却十分精妙.其衍生出各种算法,以致于占据了数据结构的半壁江山.STL中大名顶顶的关联容器--集合(set).映射(map)便是使用二叉树实现.由于篇幅有限,此处仅作一般介绍(如果想要完全了解二叉树以及其衍生出的各种算法,恐怕要写8~10篇). 1)二叉树(Binary Tree) 顾名思义,就是一个节点分出两个节点,称其为左右子节点:每个子节点又可以分出两个子节点,这样递归分叉,其形状很像一颗倒着的树.二叉树限制了每个节点最多有两个子节…
题目链接:Recover Binary Search Tree | LeetCode OJ Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. Note: A solution using O(n) space is pretty straight forward. Could you devise a constan…
题目链接:Validate Binary Search Tree | LeetCode OJ Given a binary tree, determine if it is a valid binary search tree (BST). Assume a BST is defined as follows: The left subtree of a node contains only nodes with keys less than the node's key. The right…