int find1(int u){while(fa[u]!=u)u=fa[u]=fa[fa[u]];return u;} int find2(int u){return (fa[u]==u)?u:fa[u]=find2(fa[u]);}
上:非递归款,把最开始find的结点提上去 下:递归款,把路径上所有结点全部提上去
find