平衡二叉树
achonor
早起的虫子被鸟吃..
展开
-
LeetCode 1425. 带限制的子序列和
题目链接:https://leetcode-cn.com/problems/constrained-subsequence-sum/思路:动态规划 dp[i] = Max(nums[i], nums[i] + dp[i + j]) 其中0 < j <= k,但是直接遍历dp[i + j]会超时,所以要维护一个能快速查找dp[i + j]中最大值的结构,可以使用单调栈,也可以用平衡二叉树,由于C#中没有双向队列,干脆就直接拷个Splay树过来。 public class So原创 2021-04-06 11:12:43 · 240 阅读 · 0 评论 -
LeetCode 327. 区间和的个数
题目链接:https://leetcode-cn.com/problems/count-of-range-sum/题意:给定一个数组nums,找出子数组中元素和在[lower, upper]中有多少个,[-2, 5, -1]的子数组有[-2, 5, -1],[-2, 5],[-2],[5, -1],[5],[-1]共6个,满足条件的共3个思路:1.维护一个平衡二叉树,将所有以下标以0为起点的子数组和插入二叉树中([-2, 5, -1] = 2,[-2, 5] = 3,[-2] = -2)满足在原创 2021-04-02 14:38:55 · 199 阅读 · 0 评论 -
红黑树-RBTree
#include <set>#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#pragma warning(disable:4996)using namespace std;struct RBNode { int value;...原创 2019-04-17 16:35:34 · 398 阅读 · 0 评论 -
splay - tree 伸展树
Splay是一种自平衡二叉树,它不需要刻意的去调整,要求也没有AVL树那么苛刻,代码量相对AVL树也短了不少,最重要的是它的操作非常灵活,可是基本实现线段树的功能. 在实际的应用中刚刚被访问过的数据极有可能会在很短的时间内再次被访问,所以我们只需要把刚刚查询过的节点旋转到树的顶端就行了,刚刚也提到了Splay是一种自平衡的二叉树,所谓的自平衡就是我们在旋转节点的时候把树的深度减少.要想达到减小深原创 2015-04-17 20:18:06 · 949 阅读 · 0 评论 -
[POJ 3468] A Simple Problem with Integers Splay树
题意:给出一段区间,并给出每个点的初值,C l, r, val 表示给 l, r 这段区间每个点都加上 val (val可以数负数), Q l, r 表示询问 l, r 区间的和。思路:普通的线段树就能搞定原创 2015-11-17 20:35:13 · 803 阅读 · 0 评论 -
[POJ 2528] Mayor's posters Splay树
题意:有一面空白的墙,然后在上面贴广告,新的广告会覆盖以前贴的广告。问最后墙上有多少能看到的广告。思路:区间问题可以用Splay树,线段树等算法,由于广告的长度最大能到 10000000 但是广告的数量最多只有 10000 所以现对数据离散化,离散化的时候要在间隔大于 1 的两个点之间插入一个数,避免覆盖两端后中间的的也没了原创 2015-11-18 20:32:21 · 630 阅读 · 0 评论 -
[POJ 2777] Count Color Splay树
题意:给出一个长 L 的板子,板子被分成 L 段 每段初始颜色为 1, 然后两种操作: C l, r, color 表示将 l 到 r 的颜色修改成 color P l, r 表示询问 l 到 r 有多少种颜色。原创 2015-11-16 22:42:08 · 436 阅读 · 0 评论 -
[HDU 1394] Minimum Inversion Number 逆序对
题意:给你一个有 n 个 小于 n 且不重复的数组成的序列,每次将序列最前面的数字移动到序列的最后面,求移动过程中序列的最小的逆序对。思路:这题数据比较小可以先暴力出原始序列的逆序对,然后每次将最前的数移动到最后逆序对就会变成 ans = ans - num[0] + n - num[0] - 1。原创 2015-11-15 23:24:36 · 431 阅读 · 0 评论 -
[HDU 1754] I Hate It Splay
继续splay。。。。原创 2015-11-14 11:10:30 · 396 阅读 · 0 评论 -
[HDU 1166] 敌兵布阵 Splay
最近太无聊了,我决定要把HDU上的写过的线段树都用splay写一遍原创 2015-11-14 11:02:59 · 509 阅读 · 0 评论 -
[HDU 1698] Just a Hook splay
题意:第一行输入测试组数,第二行输入 n ,表示有个 n 打的区间,第三行输入 m , 表示有 m 个更新,接着输入 m 行,每行三个数 l , r , val, 表示把 l 到 r 这个区间里的所有值改成 val。 最后输出整个区间的权值之和。可以用线段树解决, 但是我要继续splay原创 2015-11-14 14:36:35 · 455 阅读 · 0 评论 -
Avl - tree 平衡二叉树
平衡二叉树,AVL原创 2015-04-12 18:54:53 · 767 阅读 · 0 评论