對並查集學習的總結

2021-04-23 11:23:23 字數 516 閱讀 7603

在poj上做了一些題,在貢獻ac的同時,貢獻了π(e^n)的wa,tl,ml和re。現在就來總結一下這乙個多禮拜對並查集的感受,也把並查集的標程寫出來以備後用。

// 尋找集合的頭元素

// 並對路徑進行壓縮

// notice: 在main裡邊要將parent全部初始化為-1

int find(int x)

else

return x;

}// 另外的乙個find版本,效率較低

//但能避免以上find可能導致的mle

int find(int x)

return x;

}// 合併集合

// 這裡將層次低的加入層次高的

// 這樣降低了這棵樹的高度和find的時間複雜度

void union(int x,int y)}

經過不斷的改進,以上的**效率已經比較高了。特別要注意的是parent一定要初始化為-1!!!

另外在這裡感謝波波和《演算法導論》,還有china8848的報告。

並查集總結學習

主要是為了複習內容,好讓自己安心一點 之前學習並查集的時候,並沒有系統地學習圖論的知識,現在再看過來,又要好一些了。根據目前的理解,並查集就是 無向圖中有關聯的部分連通 判斷一條邊是否成環 前提全域性變數 int fa n 祖宗 int rank n 成員數 void init find函式 找爸爸...

並查集學習總結

並查集,在一些有n個元素的集合應用問題中,我們通常是在開始時讓每個元素構成乙個單元素的集合,然後按一定順序將屬於同一組的元素所在的集合合併,其間要反覆查詢乙個元素在哪個集合中。這一類問題近幾年來反覆出現在資訊學的國際國內賽題中,其特點是看似並不複雜,但資料量極大,若用正常的資料結構來描述的話,往往在...

並查集 並查集的基本操作總結

並查集的定義 並 union 合併 查 find 查詢 集 set 查詢 並查集的實現 int father n 使用乙個陣列記錄 father 1 1 1的父節點是本身 father 2 1 2的父節點是1 並查集的初始化 for int i 1 i n i 並查集的查詢 int findfath...