https://www.luogu.org/problem/P3402
题意:
思路:可持久化并查集,按秩合并(为什么不能路径压缩我也不懂23333333)
其实就是用可持久化数组的思路维护fa[]和depth[]数组。
复杂度 O ( n ∗ l o g n ∗ l o g n ) O(n*logn*logn) O(n∗logn∗logn)
#include<bits/stdc++.h>
using namespace std;
const int maxn=100000+100;
int n,m,tree[maxn],L[maxn*20],R[maxn*20],fa[maxn*20],depth[maxn*20],tot;
void build(int& o,int l,int r)
{
o=++tot;
if(l==r){
fa[o]=l;return;