以前做线段树分治套冰茶姬时一直用的下面这个写法:
inline void merge(Re x,Re y){ x=find(x),y=find(y); if(size[x]>size[y])swap(x,y); fa[x]=y,size[y]+=size[x]; }
但是今天复习板子时发现冰茶姬模板题TLE了(不过开了O2后可以20ms过),翻了翻以前代码,意识到按深度合并才是正确的
所以....为啥以前写线段树分治时没出问题啊,有复杂度保证吗?