树链剖分相关
树链剖分这玩意儿还挺重要的,是解决静态树问题的一个很好的工具~
这里主要介绍一下做题时经常遇到的两个操作:
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]
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。