// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define maxn 1000002
//#define int long long
//#define kcz
using namespace std;
inline int read()
{
char x = getchar();
int lin = ,f = ;
while(x < '' || x > '')
{
if(x == '-') f = -;
x = getchar();
}
while(x >= '' && x <= '')
{
lin = (lin << ) + (lin << ) + x - '';
x = getchar();
}
return lin * f;
}
#define PII pair<int,int>
#define fir first
#define sec second
#define ma(a,b) make_pair(a,b)
#define inf 123123123
int head[maxn],u,v,tot,n,m,dep[maxn],q,fa[maxn][],rt;
struct st{
int v,nex;
}s[maxn];
void add(int u,int v)
{
s[++tot] = (st) { v,head[u] };
head[u] = tot;
}
void dfs(int now,int F)
{
fa[now][] = F;dep[now]=dep[F]+;
for(int i=;i<=;i++)fa[now][i]=fa[fa[now][i-]][i-];
for(int i = head[now]; i; i = s[i].nex)
if(s[i].v != F)
{
dfs(s[i].v,now);
}
}
int lca(int a,int b)
{
if(dep[a] > dep[b]) swap(a,b);
int len = dep[b] - dep[a];
for(int i = ; ( << i) <= len; i++)
if(len & ( << i))
b = fa[b][i];
if(a != b)
{
for(int i = ; i >= ; i--)
{
if(fa[a][i] != fa[b][i])
{
a = fa[a][i];
b = fa[a][i];
}
}
a = fa[a][];
}
return a;
}
signed main(){
n = read(); q = read(); rt = read();
for(int i = ; i < n; i++)
{
u = read(); v = read();
add(u,v); add(v,u);
}
dfs(rt,);
for(int i = ; i <= q; i++)
{
u = read(); v = read();
printf("%d\n",lca(u,v));
}
}

最新文章

  1. 【记录】ASP.NET XSS 脚本注入攻击
  2. SQLServer2008-镜像数据库实施手册(双机)SQL-Server2014同样适用
  3. Eclipse: The superclass “javax.servlet.http.HttpServlet” was not found on the Java Build Path
  4. 完全偶图K(3,3)与完全图K5是否存在平面表示
  5. RHEL 6 或者 Oracle Linux 6, 不关机识别新添加的scsi硬盘
  6. 认识Runtime2
  7. 分享jstl实现分页,类似百度分页
  8. 在Microsoft-IIS/10.0上面部署mvc站点的时候,出现404的错误
  9. Linux Shell 命令
  10. ORACLE查看锁(lock)情况
  11. text code
  12. WebApi2官网学习记录---单元测试
  13. jQuery数字加减插件
  14. JavaEE程序编码规范
  15. octotree-chrome插件,Github代码阅读神器
  16. 类和对象,以及 LeetCode 每日一题
  17. synchronized学习
  18. I do think I can breakdown the problem into parts that make sense
  19. 使用My97DatePicker设置日期的属性示例
  20. TF-IDF算法(1)—算法概述

热门文章

  1. P1550打井
  2. 关于float的小奥秘
  3. echarts图标使用(一)
  4. E - 卿学姐与城堡的墙(树状数组求逆序数)
  5. PHP常用代码片段
  6. RabbitMQ入门教程(三):Hello World
  7. 10.AutoMapper 之自定义值解析器(Custom Value Resolvers)
  8. 将div的内容生成清晰的PDF、高清PDF
  9. 纯CSS绘制3D立方体
  10. python实现观察者模式