首页 > 其他分享 >科技:dfn 求 LCA

科技:dfn 求 LCA

时间:2023-09-13 12:22:41浏览次数:45  
标签:int dc st 科技 dfn LCA 节点

upd:
2023.09.13 新建

非常好思路,学习自 Alex_Wei

摘要

使用 st 表维护区间内所有点的 dfn 最小的节点。
优点是好写、时间空间常数小。

前置约定

\(dfn_{i}\) :\(i\) 是第几个被访问的点

\(sub_{i}\) :以 \(i\) 为根的子树

\(LCA\) :\(\text{LCA}(u,v)\)

原理

  1. dfn 的性质: 设 \(dfn_{u}<dfn{v}\), \(\forall dfn_{i} \in [dfn_{u},dfn_{v}] ,\ i\in sub_{Lca},\ i \ne \text{LCA}(u,v)\) ,即区间内 \(LCA\) 不出现,且任意一个节点都是 \(LCA\) 的子节点 。

  2. 由上述性质,易知 \([dfn_{u},dfn_{v}]\) 内至少有一个 \(LCA\) 的直接子节点。

  3. 设 \(u,v\) 无祖先关系,考虑维护 “区间内所有点的深度最小的节点”,即为答案。

  4. 当 \(u\) 是 \(v\) 的祖先时,3. 不成立,发现仅需去掉 u 即可满足,并且在该情况下 3. 依然成立。所以查询的 \(dfn\) 区间改为 \([dfn_{u}+1,dfn_{v}]\) 。

  5. 发现在 4. 的情况下,\(LCA\) 一定是查询范围内 \(dfn\) 最小的点,所以可以从比较 \(dep\) 转化成比较 \(dfn\) 。

  6. 至此,问题变为区间可重的无修改查询,使用 st 表,预处理 \(O(n \log n)\) ,查询为 \(O(1)\) ,空间 \(O(n \log n)\)

  7. 当 \(u=v\) 时需要特判。

实现

void dfs(int u,int pa)
{
    dfn[u]=++dc;//dc : dfn_cnt
    st[dc][0]=pa;
    //…………………………………………………………
}
int get(int u,int v)
{
    return ( dfn[u] < dfn[v] ) ? u : v ;
    //传入父节点,返回 dfn 更小的父节点
}
void Pre()
{
    for(int i=1;i<=__lg(n);i++)
        for(int j=1;j+(1<<i)-1<=n;j++)
            st[j][i] = get( st[ j ][i-1] , st[ j+(1<<(i-1)) ][i-1] );
}
int Lca(int u,int v)
{
    if(u==v)return u;
    if((u=dfn[u)>(v=dfn[v))swap(u,v);
    int d=__lg(v-u);
    return get( st[ u+1 ][d] , st[ v-(1<<d)+1 ][d] );
}

标签:int,dc,st,科技,dfn,LCA,节点
From: https://www.cnblogs.com/hx-rand/p/17699257.html

相关文章

  • 加速端到端的生成式AI进程,亚马逊云科技服贸会惠普数字经济发展
     9月2日-9月6日,2023年中国国际服务贸易交易会在北京召开,亚马逊云科技积极参与,并分享了创新技术和成功案例。  加速端到端的生成式AI之旅 在服贸会成果发布会上,亚马逊云科技大中华区战略业务发展部总经理顾凡为大家带来了“携手亚马逊云科技,加速端到端的生成式AI之旅”主题演讲......
  • 首家!亚信科技AntDB数据库完成中国信通院数据库迁移工具专项测试
    近日,在中国信通院“可信数据库”数据库迁移工具专项测试中,湖南亚信安慧科技有限公司(简称:亚信安慧科技)数据库数据同步平台V2.1产品依据《数据库迁移工具能力要求》、结合亚信科技AntDB分布式关系型数据库产品,成为首款完成标准所规定的测试产品。测试过程依据标准在基础功能、数据库......
  • 世界灌溉科技大会将于2024年3月在北京国家会议中心召开
    加快农业强国建设,强化农业科技和装备的支撑,积极汇聚全球智慧,共享世界先进的灌溉技术成果。"世界灌溉科技大会"将于2024年3月31日-4月2日在北京国家会议中心举办。展会面积达30000平方米,邀请世界500强、上市公司、国际龙头等行业知名企业参会,专业观众将突破35000人次。全球灌溉巅峰......
  • 【模板】最近公共祖先LCA——倍增
    题目来自洛谷P3379【模板】最近公共祖先(LCA)【模板】最近公共祖先(LCA)题目描述如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。输入格式第一行包含三个正整数\(N,M,S\),分别表示树的结点个数、询问的个数和树根结点的序号。接下来\(N-1\)行每行包含两个正整数......
  • 亚马逊云科技与德勤中国推出新工具,有效缓解生成式AI时代下的安全问题
    随着人工智能技术的飞速发展,生成式AI应用越发广泛,在各领域迎来了新的机遇,但同时也在安全层面给企业带来了新的挑战。网络、数据泄露、隐私侵犯等安全威胁,以及法律法规的不断更新,使跨区域运营过程中的网络安全和合规成为企业持续发展不可或缺的一环。 亚马逊云科技与全球核心级咨询......
  • 华为回击:制裁无法阻挡中国科技创新 | 百能云芯
    华为最新推出的Mate60Pro手机引发了中国市场的抢购热潮,这一成功的举措为华为带来了信心。华为在这个背景下再度推出两款新机,其中包括高阶版的Mate60Pro+和折叠式手机MateX5。这两款手机在首批预购开始后迅速售罄,不仅取得了市场的热烈欢迎,还超越了竞争对手OPPOFindN3Filp的......
  • 南凌科技“云网安”一体化解决方案 赋能零售行业新增长
    8月10日,“2023第六届中国零售消费者体验峰会”在上海举行,南凌科技受邀参会并发表主题演讲,同时凭借“零售行业‘云网安’一体化解决方案”荣获“最佳零售行业网络安全解决方案奖”,受到全场瞩目。“数字化转型成为零售行业的重要挑战和新增长路径据国家统计局数据,2023年上半年中国社......
  • 南凌科技“云网安”一体化解决方案 赋能零售行业新增长
    7月12日,「2023算网融合产业发展峰会」在北京盛大开幕。百位领域专家、大咖紧跟时代趋势,围绕SD-WAN、IPv6+、边缘计算、零信任等热点技术,共同探讨算网融合发展模式,进一步凝聚算网融合发展共识,加速算网融合发展进程。南凌科技产品与市场总监殷格受邀参会,并在主论坛发表题为“南凌科......
  • 倍增求lca
    步骤:1.前置准备:lg数组,depth数组,fa数组2.若x与y不在同一深度,先让它们跳到同一深度3.开始倍增往上跳代码:#include<iostream>#include<cstdio>usingnamespacestd;constlonglongN=1e6+10;intn,m,s,h1,h2,lg[N],fa[500010][30],depth[N];inttot=0,head[N],nxt[N],v[N......
  • 恒创科技:国内访问香港服务器选择什么路线?
    ​国内访问中国香港服务器可以选择多种路线。首先,我们了解下各个线路的速度延迟。一、CN2直连:解决了不同互联网服务提供商之间访问的难题,不需要绕到国际网络再从中国的三个网络入口进入。二、优化直连:全国平均延迟60ms,速度较快。三、国际线路:全国平均延迟180ms......