並查集的概念及應用

2021-07-27 18:12:55 字數 477 閱讀 9295

並查集的意思就是:合併、查詢和集合。在演算法題中,並查集的應用包括但不侷限於:屬性歸類。

設定乙個二維陣列,然後陣列項數是他本人,陣列內容可以看做是他的父親,最後會上溯到乙個祖先。

具體用法:

1、首先建立乙個整數型陣列,然後對其初始化,初始化的內容就是將他們的父親暫時設為他們 自己

void init(int n)

2、上面是一些基礎操作,下面涉及到找父親的方法(會涉及壓縮路徑,目的是防止超時)

int find(int x)

while(a!=s[a])

return x;

}

3、在實際應用中,我們從一些特定屬性來找到乙個集合的人,就要用到並查集,思路是對於乙個興趣,如果沒有人擁有過,那麼這個興趣的歸屬人就可以設定成第一次訪問的 人,然後之後擁有這個興趣的人不斷地和其合併,就會形成乙個圈子 

並查集的應用

特點 1,都有乙個陣列儲存它的根節點 2,用vis陣列儲存其是否訪問過 3,如果cnt 1 說明該圖是連通的。連通圖中只有根節點的父節點是自身,cnt應該是1 解決的題目 1,題目已經給了圖上頂點之間的關係,通過頂點之間的關係,求連通分量的個數 include stdio.h int bin 100...

並查集的應用

並查集可以有很多應用。比如權值並查集或帶擴充套件域的並查集,可以來維護一些可傳遞的關係。當然,並查集最直接的應用,則是來維護集合的的連通關係。第一題題意 給出一幅圖,以及一系列操作,每次操作刪去乙個點,及這個點相關的所有邊,並輸出刪點之後的連通塊個數。思路 這道題把過程倒著來就好了,可以看成建圖的過...

並查集相關概念

前言 並查集這三個字,取自合併 查詢 集合。顧名思義,並查集支援兩種操作 合併和查詢 並查集的實現是乙個陣列,每個下標對應著它的父節點 int pre 100 並查集的初始化 初始化每個都是根節點,即自己的父節點就是自己,表明自己是根節點 for int i 0 i n i 並查集的查詢 並查集的查...