#include<iostream>
#include<cstdio>
#define N 100001
using namespace std;
struct edge{
int to,next;
}e[2*N];
struct seg{
int l,r,lc,rc,s,tag;
}tr[4*N];
int n,m,cnt,head[N],size[N],fa[N][18],pos[N],belong[N],deep[N],sz,v[N];
bool vis[N];
void ins(int u,int v){
e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;
e[++cnt].to=u;e[cnt].next=head[v];head[v]=cnt;
}
void dfs1(int x){
vis[x]=size[x]=1;
for(int i=1;i<=17;i++)
if(deep[x]<(1<<i))break;
else fa[x][i]=fa[fa......
阅读全文