首页 > 其他分享 >LCA——ST表+欧拉序

LCA——ST表+欧拉序

时间:2023-04-20 16:33:32浏览次数:38  
标签:RMQ dfs ST LCA 序列 欧拉

了解到一个quan新的东西:

用ST表(欧拉序)实现LCA(树上最近公共祖先)

欧拉序

前序遍历得到的序列,叫dfs序
但数字可以重复出现,一进一出,叫欧拉序
会发现根结点总在中间
而根结点是该段序列深度最小的点
因此两个点的LCA,
就是在该序列上两个点第一次出现的区间内深度最小的那个点

即转化为区间RMQ问题,可以用ST表
当然你可以再写一棵线段树(如果有修改操作)

具体的,【笔记】dfs序,欧拉序,LCA的RMQ解法_dfs序求lca_Little_Fall的博客-CSDN博客

标签:RMQ,dfs,ST,LCA,序列,欧拉
From: https://www.cnblogs.com/yvette1217/p/17337310.html

相关文章

  • scrapy startproject tutorial 这句话在哪输入cmd?
    大家好,我是皮皮。一、前言前几天在Python钻石交流群【未央.】问了一个Python网络爬虫的问题,这里拿出来给大家分享下。课程截图如下:官网的截图如下:二、实现过程这里【甯同学】给了提示,不过对于新手来说,还是不太容易上手的。进入终端之后,我们再启动项目,如下:正常来说,这样就可以启动成......
  • Atcoder Beginner Contest 298---E
    题目:E-UnfairSugoroku(atcoder.jp)分析:这题状态转移方程挺好推的,但是用dp解是我没想到的dp[i][j][0]表示T在i点,A在j点且轮到T走时赢的概率dp[i][j][1]表示T在i点,A在j点且轮到A走时赢的概率代码:#include<bits/stdc++.h>usingnamespacestd;#definelllonglong#def......
  • OpenHarmony SystemUI开发记录
    背景介绍最近学习OpenHarmony应用开发,SDK版本是3.2.9.2Beta4,IDE版本是3.1.0.200。参考官方文档,做了个Demo应用,调试、运行非常顺利。启动应用后,状态栏和导航栏占用的高度过高,显得很奇怪,尝试修改一下系统应用。摸石头过河因为没做过移动端开发,最初以为状态栏和导航栏是由Launch......
  • 51单片机学习笔记 STC89CRC (03)蜂鸣器和三级管
    蜂鸣器根据工作原理的不同可分为"电磁式蜂鸣器"和"压电式蜂鸣器"蜂鸣器根据驱动方式可分为"有源蜂鸣器"和"无源蜂鸣器"有源蜂鸣器:一通电就会叫无源蜂鸣器:必须用2k~5k的方波去驱动它 三极管直插式封装TO-92:面向三极管平的一面,从左往右数1.发射极2.基极3.集电极......
  • Permutation Restoration (贪心,排序处理) (范围左端点排序,然后取最小点放)
     思路:对于每一个bi都会有有一个范围,然后贪心的做,具体的先对这个范围按照左端点排序,然后贪心的去最小的值去放 ......
  • C++黑马程序员——P185-188. STL初识
    P185.STL初识——STL的基本概念P186.STL初识——vector存放内置数据类型P187.STL初识——vector存放自定义数据类型P188.STL初识——容器嵌套容器P185.STL的基本概念STL,StandardTemplateLibrary,标准模板库STL:为了提高代码的复用性,提供一套标准的数据结构和算法STL......
  • DRF之request
    1.request.datapost请求内的数据都放在了request.data2.request.query_parmeget请求内携带的参数都放在了request.query_parms3.request.FILESdefFILES(self):#LeavethisonealoneforbackwardscompatwithDjango'srequest.FILES#Dif......
  • int数组转化为List
    评:今天想把int数组转换为List,知道在Arrays里有一个静态的方法asList();所以就用了:int[]data=newint[]{1,2,3};ListdataList=Arrays.asList(data);结果运行起来得不到想要的结果,后来看了一下,是因为没有得到想要的List。自己试了试。把int改为Integer就行了:Inte......
  • Git 的origin和master分析
    评:<<关键是中英文切换着打字太辛苦了转载请注明出处>>首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样)1.从git取数据(gitclone)2.改动代码3.将改动传回git(gitpush)这3个步骤又涉及到两个repository,一个是remoterepository,再远程服务......
  • Ubuntu部署FastApi项目
    环境介绍系统:Ubuntu22.04Pyhton版本:3.8.10Fastapi版本:0.95.0Gunicorn版本:20.1.0准备工作1.ssh连接工具(本例使用基于Windows的Linux子系统中的ssh工具)2.配置nginx代理服务器3.配置GunicornWSGIHTTP服务器一、SSH连接Ubuntu服务器sshusername@hostusername......