感觉还没树剖模板题难
放一下本蒻蒟的部分代码
while(m--){
char op; cin>>op;
if(op == 'Q'){
int u, v; cin>>u>>v;
if( querytree(u, v)) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
if(op == 'C'){
int u, v; cin>>u>>v;
if(f[v] != u) u ^= v ^= u ^= v;
war[++cntt] = v;
update(1, 1, n, dfn[v], 1);
}
if(op == 'U'){
int x; cin>>x;
update(1, 1, n, dfn[war[x]], 0);
}
}
总之就是很简单