int find(int x){return x==F[x]?x:find(F[x]);}
void join(int x,int y){
int fx=find(x);
int fy=find(y);
if(fx!=fy){
F[fy]=fx;
rank[fx]+=rank[fy];// 子節點數量
}
}
並查集
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
int find(int x){return x==F[x]?x:find(F[x]);}
void join(int x,int y){
int fx=find(x);
int fy=find(y);
if(fx!=fy){
F[fy]=fx;
rank[fx]+=rank[fy];// 子節點數量
}
}