并查集一定要注意: 1.启发式合并先找根,不要写成:
if(sz[x]>sz[y]) swap(x,y); x=find(x),y=find(y);
2.找根不要写错:
int find(int x){return x==fa[x]?x:find(fa[x]);}
并非是:
int find(int x){return x==fa[x]?x:fa[x];}
3.当前判定非法return前记得回滚操作