博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LCA 树链剖分
阅读量:6770 次
发布时间:2019-06-26

本文共 973 字,大约阅读时间需要 3 分钟。

//LCA//树链剖分 在线 #include
#include
#include
#include
#include
#include
using namespace std;int n,m,root,cnt,head[500001];int hvyson[500001],fa[500001],siz[500001],dep[500001],top[500001];struct uio{ int to,next;}edge[1000001];void add(int x,int y){ edge[++cnt].next=head[x]; edge[cnt].to=y; head[x]=cnt;}void dfs1(int x,int f,int depth){ dep[x]=depth; fa[x]=f; siz[x]=1; int maxson=-1; for(int i=head[x];i;i=edge[i].next) { int y=edge[i].to; if(y==f) continue; dfs1(y,x,depth+1); siz[x]+=siz[y]; if(siz[y]>maxson) { hvyson[x]=y; maxson=siz[y]; } }}void dfs2(int x,int topf){ top[x]=topf; if(!hvyson[x]) return; dfs2(hvyson[x],topf); for(int i=head[x];i;i=edge[i].next) { int y=edge[i].to; if(y==fa[x]||y==hvyson[x]) continue; dfs2(y,y); }}int lca(int x,int y){ while(top[x]!=top[y]) { if(dep[top[x]]

 

转载于:https://www.cnblogs.com/water-radish/p/9280519.html

你可能感兴趣的文章
Exchange Server 2013中DAG无法添加成员问题排错
查看>>
自动加域--Script
查看>>
使用测试工具进行HTTP测试。
查看>>
清除severe.exe病毒
查看>>
Windows 10 之设置URL汇总
查看>>
2-16 用户自定义控件
查看>>
Windows下的磁盘管理(四)
查看>>
细品慢酌QuickTest关键视图(4)
查看>>
DEDECMS Deprecated: Function ereg_replace() is deprecated错误提示解决方法
查看>>
也许table布局专为form表单布局而生?
查看>>
VMware无法与物理机连通Could not connect Ethernet0 to virtual network "VMnet8"完美解决
查看>>
SAP R3 用系统自带的功能查看后台数据库数据 SE16
查看>>
find方法
查看>>
Windows Server 2008更改远程桌面端口需注意的地方
查看>>
实现让Lync client也能够"潜水"隐身聊天
查看>>
DOM4J介绍与代码示例
查看>>
linux 命令集合1
查看>>
数据管理DMBOK总体介绍
查看>>
揭开.NET程序保护的秘密
查看>>
工控项目开发框架介绍
查看>>