int pre[MAXN];
int Find(int pos) {
if (pre[pos] == pos) // pre是自己,代表為root節(jié)點(diǎn)
return pos;
int r = pos;
while (r != pre[r]) // 找到節(jié)點(diǎn)pos的root
r = pre[r];
// 路徑壓縮
int i = pos;
while (i != r) { // 把沿路pos->root沿路的節(jié)點(diǎn)的root的pre
//全部設(shè)置為root
int t = pre[i];
pre[i] = r;
i = t;
}
return r;
}
void Union(int posX, int posY) { // 把兩個節(jié)點(diǎn)的root設(shè)置為同一個
int rootX = Find(posX), rootY = Find(posY);
if (rootX != rootY)
pre[rootX] = rootY;
}
并查集模板
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 從并查集Union Find算法談算法解決實(shí)際問題的過程算法并查集算法尋找路徑 從并查集Union Find算法談...
- 1 出門坐車,包里習(xí)慣塞本書。 周末出行,帶了潘向黎的《看詩不分明》,先生新買的。挑書時,他笑我:其他幾本嘛,你都...
- 使用NodeJS的n模塊進(jìn)行版本管理 安裝n模塊 選擇版本 安裝完成之后,直接輸入n后輸出當(dāng)前已經(jīng)安裝的node版...