st表RMQ和LCA

Posted liusu123456

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了st表RMQ和LCA相关的知识,希望对你有一定的参考价值。

技术图片

技术图片

 

 

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 技术图片

 

 

int lca(int x,int y)
{
    if(de[x]<de[y]) swap(x,y);
    int d=de[x]-de[y];
    for(int i=log2(d);i>=0;i--)
    {
        if(d&(l<<i))
        {
            x=fa[x][i];
        }
    }
    for(int i=log2(n);i>=0;i--)
    {
        if(fa[x][i]!=fa[y][i])
        {
            x=fa[x][i];
            y=fa[y][i];
        }
    }
    if(x!=y)
    {
        return fa[x][0];
    }
    else
    {
        return x;
    }
}

技术图片

技术图片

 

 技术图片

 

 技术图片

技术图片

 

 技术图片

以上是关于st表RMQ和LCA的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2586 How far away ? << LCA转RMQ+ST表 求树上任两点最短距离裸题

lca 欧拉序+rmq(st) 欧拉序+rmq(线段树) 离线dfs

静态区间(RMQ问题)(st表)

RMQ ST表

与众不同(RMQ问题)(ST表)

浅谈RMQ