首页 > 其他分享 >平衡树炫酷科技

平衡树炫酷科技

时间:2024-04-27 14:00:40浏览次数:16  
标签:Case 递归 Treap 写法 rs rd 科技 平衡 树炫酷

标题是吸引你点进来的

Case 1

LCT 的 access 操作应该可以实现某种区间覆盖的操作(听同学讲的,具体的还待讨论)

Case 2

众所周知,可并堆中左偏树合并是这样写的(记 \(dist\) 为 \(rd\)):

merge(A, B)
  if !A: return B
  if !B: return A
  if B.val > A.val
    swap(A, B)
  A.rs <- merge(A.rs, B)
  if (A.rs.rd > A.ls.rd)
    swap(A.ls, A.rs)
  A.rd = A.rs.rd + 1
  return A

你将其与斜堆合并代码 diff 一下就会发现,斜堆就是左偏树删去 if (A.rs.rd > A.ls.rd)A.rd = A.rs.rd + 1 这两行代码

Case 3

线性建树

  • Splay:直接建成一条链
  • Treap 法一:先建成完全二叉树,对每个节点递归回来时若优先级不对就向下旋,线性时间和正确性不难证明
  • Treap 法二:用栈存可能成父亲节点和右儿子的点(即最右链),这个方法同样可以应用于后缀树、笛卡尔树等的建树中

Case 4

无旋平衡树(FHQ-Treap、替罪羊树)的进阶应用

  • 由于其不旋转的性质,它是可以用于嵌套数据结构中的外层嵌套的平衡树以及优化 dp(OI Wiki 上怎么现在还没有“平衡树套线段树”内容啊 qwq)
  • 支持可持久化

Case 5

旋式 Treap 的断树 & 并树

  • 断树:记优先值为 \(heap\) 值
    断树

  • 并树:相信方法你自己也能编出来好几种

有什么用?

  • Splay 在可持久化时:由于均摊,可以被卡(在某个操作代价很大时反复回到前一个版本去算)
  • Treap 由于随机,期望时间复杂度是对的,常数小、不被卡

Case 6

非递归平衡树写法

举例:Splay 也有递归、非递归的写法,比如 OI Wiki 中的 Splay 就是非递归写法

优点:常数小、代码量与递归版差不多、清晰易调

两种写法:

  1. 记父亲的写法

    此写法逻辑相对清晰,但代码长度相对大;但是支持中途查找(LCT 要用到)

  2. 栈,把不断找儿子的栈存下来,临时记了一串父亲

    此写法据说更快,代码短,但是不支持中途查找

标签:Case,递归,Treap,写法,rs,rd,科技,平衡,树炫酷
From: https://www.cnblogs.com/laijinyi/p/18161983

相关文章

  • 电子科技大学 计算机科学与技术 就读体验
    已经在UESTC度过了第四个年头,也马上要毕业了,确实值得回味下,也发表一下我对UESTC整个的看法。个人经历20年疫情爆发,强基出台,非国赛的竞赛全部作废。当时第一志愿是北理工,但是北理工搞了个自选专业的政策把投档线拉到了661,我裸分660没上去,走了第二志愿电子科大,擦线进了cs小类......
  • 【高级RAG技巧】使用二阶段检索器平衡检索的效率和精度
    一传统方法之前的文章已经介绍过向量数据库在RAG(RetrievalAugmentedGenerative)中的应用,本文将会讨论另一个重要的工具-Embedding模型。一般来说,构建生产环境下的RAG系统是直接使用Embedding模型对用户输入的Query进行向量化表示,并且从已经构建好的向量数据库中检索出相关的......
  • C++ 多级继承与多重继承:代码组织与灵活性的平衡
    C++多级继承多级继承是一种面向对象编程(OOP)特性,允许一个类从多个基类继承属性和方法。它使代码更易于组织和维护,并促进代码重用。多级继承的语法在C++中,使用:符号来指定继承关系。多级继承的语法如下:classDerivedClass:publicBaseClass1,publicBaseClass2,...{......
  • 搜维尔科技:为什么您应该选择 Movella Xsens 动作捕捉
    Xsens动作捕捉–黄金标准从电影制作人到物理治疗师,Xsens动作捕捉系统正在帮助世界各地的专业人士将动作数字化。要么获得洞察力以改善健康或表现,要么创建角色和视觉特效,将内容制作者的愿景变为现实。图片为什么您应该选择Xsens动作捕捉1.随时随地捕捉运动在任何环境中获......
  • JZ79 判断是不是平衡二叉树
    classSolution{public://求深度intdeep(TreeNode*root){if(root==NULL)return0;//求左右子树的深度intleft=deep(root->left);intright=deep(root->right);return......
  • 平衡树
    由于我们学过数据结构,在二叉搜索树中,如果给出的数据是一条链的话,那么每次查询等操作都是O(n)的级别,所以为了优化搜索查找修改的效率,需要创建平衡树,来达到logn级别的查询和修改对于一颗二叉搜索树,我们可以将它进行分裂操作,假如我们要进行查询一个数$u$那么我们就可以分......
  • 首届中国人形机器人产业大会圆满闭幕,搜维尔科技荣获卓越供应商奖
    备受瞩目的首届中国人形机器人产业大会在北京盛大举行并圆满落幕。此次大会汇聚了业内众多专家学者、企业代表以及投资机构,共同探讨人形机器人产业的最新发展趋势、技术创新及市场应用前景。图片在此次大会上,我司凭借卓越的产品质量和优质的服务水平,荣获了“2024年度人形机器人......
  • 6.农芯科技面试
    1.SpringBoot注解我的回答:@SpringBootApplication,@EnableAutoConfiguration、RestController、@Mapper、@Repository、@Service、@Controller、@Autowired、@Resource标准回答:@SpringBootApplication包含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan......
  • 中电金信:2023银行年报分析——金融科技发展新格局(下篇)
    ​​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​编辑​......
  • SAP ERP出海解决方案提供商【工博科技】,为中国企业“出海”护航
    当今高质量发展成为主题,中国企业正积极将创新成果、产品、服务“走出去”。然而出海企业面临着充满不确定性的国际环境带来的风险管控挑战和全球化经营带来的竞争挑战,必须要不断提升风险管控能力和综合竞争实力。其中,成熟的数字化能力可以在保护企业数字安全的同时提供发展的技术......