首页 > 其他分享 >求 LCA 方法总结

求 LCA 方法总结

时间:2024-10-10 21:46:16浏览次数:9  
标签:总结 结点 log 序求 dfn LCA 方法 预处理

求 LCA 方法总结

前言

求 LCA 是十分基础的东西,但是方法众多。此篇介绍 OI 中常用的求法。

倍增求 LCA

蒟蒻最先学的求 LCA 方法就是倍增求 LCA。预处理和查询时间复杂度均为单 \(\log\)。优点为好理解,比较简单,且便于处理路径数据。

树剖 LCA

重链剖分。优点是预处理是线性复杂度,单次查询单 \(\log\) 但常数较小。且套线段树就可以方便地处理很多信息。

大致过程

先做重链剖分。求 \(lca(u,v)\),若 \(u,v\) 在同一条链上,深度较大的那个点就是答案,否则跳离链头较远的点。

dfs 序求 LCA

参考这篇博客

将 DFS 序求 LCA 发扬光大,让欧拉序求 LCA 成为时代的眼泪!

预处理使用 st 表,时间单 \(\log\),但是比欧拉序少一半常数,空间也少一半常数。

大致过程

st 表处理区间父亲深度最小的结点的父亲编号。询问的时候,若 \(u=v\),需要特判。否则设 \(dfn_u < dfn_v\),返回时间戳在 \(dfn_u+1 \sim dfn_v\) 的结点中父亲深度最小的结点的父亲编号。正确性详见上面提到的博客。

标签:总结,结点,log,序求,dfn,LCA,方法,预处理
From: https://www.cnblogs.com/liyixin0514/p/18457221

相关文章

  • git push 提示 401 Unauthorized while accessing https 的原因及解决方法
       问题报错:error:TherequestedURLreturnederror:401Unauthorizedwhileaccessinggit版本:1.7.1解决方法一:指定用户gitclonehttps://github.com/org/project.git换成gitclonehttps://[email protected]/org/project.git或者gitclonehttps://username:passw......
  • android11 开机动画黑屏优化(总结)
    一、开机向导引起的短暂黑屏在系统中默认是有开机向导的,首次开机会首选进入开机向导,然后进入锁屏桌面,如果某些原因引起开机向导卡顿,会造成短暂黑屏。可以修改如下:frameworks/base/packages/SettingsProvider/res/values/defaults.xmltruetrue再在产品mk中去掉这两个app:pac......
  • 当前仍可用的爬取Youtube视频方法
    importyt_dlpimporthttp.cookiejarimporttimeimportloggingimportosimportrandom#Setuplogginglogging.basicConfig(level=logging.INFO,format='%(asctime)s-%(levelname)s-%(message)s')defload_cookies_from_netscape(cooki......
  • 今日总结
    今天了解了桶排序算法时间复杂度:平均时间复杂度:O(n+k),其中n是数据的数量,k是桶的数量。最坏时间复杂度:O(n^2),当所有数据都分配到同一个桶中时。空间复杂度:O(n+k),需要额外的空间来存储桶和数据。2.算法步骤初始化桶:根据数据的范围创建一定数量的桶。分配数......
  • Java日总结---多表查询&事务
    多表查询简介:设计员工和部门两个表点击查看代码#创建部门表CREATETABLEdept(didINTPRIMARYKEYAUTO_INCREMENT,dnameVARCHAR(20));#创建员工表CREATETABLEemp(idINTPRIMARYKEYAUTO_INCREMENT,NAMEVARCHAR(10),genderCHAR(1),--性别salaryDOU......
  • BigDecimal 常用方法
    文章目录BigDecimal常用方法1.初始化BigDecimal2.创建BigDecimal对象3.BigDecimal类中定义好的常量4.BigDecimal值之间的转换5.取当前值的相反数、绝对值、幂函数、保留数值的精度6.BigDecimal之间的运算:加减乘除方法7.两数相除保留精度BigDecimal常用方法1.初......
  • 将 OnePlus 手机备份到 PC 的 5 种最佳方法
    一加手机以其合理的价格和卓越的性能赢得了众多用户的喜爱。一加12为用户带来了高达1TB的存储空间,这无疑让用户可以更加自由地存储各种数据。为了保护重要数据不因意外删除、恢复出厂设置、病毒攻击、系统崩溃等各种原因而丢失,有必要为您的一加手机进行备份。这样,当灾难发生并......
  • 4个实用的数据同步方法
    如今处于大数据时代,数据是企业运营的核心。随着业务的扩张和用户规模的增加,信息孤岛问题慢慢地显现了出来,企业内部各部门或系统间数据无法有效共享和整合,数据在组织内部形成一个个孤立的数据岛屿。而为了消除数据孤岛,实现数据的共享和一致性,以便在各种场景下都能访问到最新、最准......
  • 《大侠立志传》游戏闪退未响应提示“找不到cv210.dll”文件该怎么处理?大侠立志传游戏
    《大侠立志传》以其丰富的剧情和独特的玩法吸引着众多玩家。然而,启动游戏时若出现闪退未响应且提示“找不到cv210.dll”文件,着实令人苦恼。遇到这种情况该如何处理呢?下面为大家提供解决办法。cv210.dll的功能介绍cv210.dll是VisualC++RedistributablePackage的一部分,特别......
  • 《神之亵渎2》游戏启动时闪退未响应弹窗“找不到visa32.dll”文件该怎么修复?神之亵渎2
    《神之亵渎2》以其独特的艺术风格和深度的剧情备受玩家瞩目。但启动游戏时出现闪退未响应且弹窗提示“找不到visa32.dll”文件,实在令人困扰。那么,该如何修复这个问题呢?本篇将为大家带来《神之亵渎2》游戏启动时闪退未响应弹窗“找不到visa32.dll”文件该怎么修复的内容,感兴趣的......