题解里的这部分代码为什么要这么写?
int find(int x) { if(par[x]==x) return x; else { int root=find(par[x]); val[x]+=val[par[x]];//主要是想问这里有什么用 return par[x]=root; } }
为什么 x 要加上父亲的前缀和呢?
x