朋友圈(帶路徑壓縮的並查集演算法)

2021-10-06 06:21:14 字數 844 閱讀 8476

所謂路徑壓縮,原理如下圖:

並查集演算法其實很常見,比如最小生成樹的kruskal演算法的核心就是使用並查集演算法啦。

這一題的思路就很清楚了,很快寫出**如下:

class

solution

for(

int i =

0; i < m.

size()

; i++

)for

(int j =

0; j < m.

size()

; j++)}

for(

int i =

0; i < m.

size()

; i++

)delete

set;

return count;

}int

find

(int x,

int*set)

//帶路徑壓縮的並查集查詢演算法

int cur = x;

//cur表示當前結點

while

(cur != root)

return root;

}void

merge

(int x,

int y,

int*set)

//把x所在的集合和y所在的集合合併成乙個大集合

};

PAT 朋友圈(並查集)

某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n...

5 9 朋友圈 (並查集)

某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n...

朋友圈 簡單並查集

班上有 n 名學生。其中有些人是朋友,有些則不是。他們的友誼具有是傳遞性。如果已知 a 是 b 的朋友,b 是 c 的朋友,那麼我們可以認為 a 也是 c 的朋友。所謂的朋友圈,是指所有朋友的集合。給定乙個 n n 的矩陣 m,表示班級中學生之間的朋友關係。如果mi 1,表示已知第 i 個和 j 個...