關於並查集的總結

2021-07-16 13:19:30 字數 265 閱讀 8460

參考了這個部落格的內容,學到了很多啊,特別是給出的這個例子很形象。

然後就是這個並查集的模版了

總結歸納就是

int pre[1000 ];

int find(int x) //路徑壓縮

return r;

void join(int x,int y)

當然具體題目有具體的改變,不過基本就是這樣了,會使用即可了。對於白書上兩個題目可以利用這個很好的解決。

然後還有其他一些較為高深的並查集在此暫記一筆 

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

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

並查集 總結

自己學完後總結一下吧,並查集,我的理解就是乙個查詢與合併,用乙個find函式來查詢自己的祖先也就是根節點,在這過程中還可以進行路徑壓縮,就是讓這個點直接變到根節點之下,還有就是合併,找出這兩個點的根節點,如果根節點不相同的話,就將乙個根節點放到另乙個根節點下面。這道題的就是用並查集做,找出總共有幾個...

並查集總結

用自己的理解來寫好了 有些地方可能不對 不定時更新理解 操作主要為三步 一 初始化 void init 二 查詢 這個為路徑壓縮 就是每次查詢時更新 查詢節點 x 上面所有節點直接使他們連向根節點 每次查詢更新 int find int x 另一種路徑壓縮 不過麻煩了些 作為理解 int find ...