树链剖分相关

07-10 1463阅读

树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~

这里主要介绍一下做题时经常遇到的两个操作:

树链剖分相关

1.在线求LCA
int LCA(int x,int y){
    while(top[x]!=top[y])
      if(dep[top[x]]>dep[top[y]]) x=fa[top[x]];
      else y=fa[top[y]];
    return dep[x]
	if(root==x) return st[1];
    if(LCA(x,root)==x){
        int ans=2147483647,from;
        for(int i=head[x];i!=-1;i=edge[i].nxt)
          if(LCA(edge[i].v,root)==edge[i].v){
		  	  from=edge[i].v;
			  break;
		  }
        if(tid[from]1) ans=min(ans,query(1,1,n,1,tid[from]-1));
        if(tid[from]+size[from]

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]