int find(int x) { if(x!=acc[x]) { int k = acc[x]; acc[x] = find(acc[x]);//A行 dist[x] += dist[k]; //B行 cnt[x] = cnt[acc[x]]; } return acc[x]; }
为什么A行不能和B行互换,如果B行在前面的话就可以直接用acc【x】了,不需要再用个K代替