是这个
cin>>x>>y; x^=last,y^=last; if(size[fat[x]]<size[fat[y]]) swap(x,y); to[x].push_back(y); to[y].push_back(x); T.dfs(y,x,fat[x]);
而不是这个
cin>>x>>y; x^=last,y^=last; if(size[fat[x]]<size[fat[y]]) swap(x,y); T.dfs(y,x,fat[x]);