可持久化并查集(草稿)
#include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f #define LNF 0x3f3f3f3f3f3f3f3f #define fio ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define pqueue priority_queue #define NEW(a,b) memset(a,b,sizeof(a)) const double pi=4.0*atan(1.0); const double e=exp(1.0); const int maxn=4e5+8; typedef long long LL; typedef unsigned long long ULL; const LL mod=998244353; const ULL base=1e7+7; const int maxp=26+5; using namespace std; struct Pus{ struct node{ int l,r,fa,dep; }tr[maxn*30]; int root[maxn*30]; int cnt; void build(int &rt,int l,int r){ rt=++cnt; if(l==r) {tr[rt].fa=l;return ;} int mid=(l+r)>>1; build(tr[rt].l,l,mid); build(tr[rt].r,mid+1,r); } void Merge(){ } }; int main(){ }