資料結構 並查集

2021-07-11 13:33:48 字數 775 閱讀 5185

time limit: 1000ms memory limit: 65536k

某城市有n個人,現在給定關於n個人的m條資訊,m條資訊是兩個人在同乙個小區,根據所給資訊,判斷這個城市最多可能有多少個小區。n個人編號為1~n。

多組輸入。

每組第一行有兩個整數n,m(2 <= n <= 50000, 0 <= m <= n/2)。

接下來m行,每行兩個整數a,b,表示a和b在同乙個小區。

根據所給資訊,輸出這個城市最多可能有多少個小區。

5 2

1 23 4

3

#includeint pre[51000];

int find(int x)

int k=x;

int j;

while(k!=r)//路徑壓縮  非遞迴壓縮;

return r;

}void join(int x,int y)

int main()

int count = 0;

for(i=1;i<=n;i++)

printf("%d\n",count);

}}#includeint pre[51000];

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

void join(int x,int y)

int main()

int count = 0;

for(i=1;i<=n;i++)

printf("%d\n",count);

}}

資料結構 並查集

並查集,顧名思義,合併 查詢 集合 並查集是一種樹型的資料結構,用於處理一些不相交集合 disjoint sets 的合併及查詢問題。常常在使用中以森林來表示。對於概念等等的這裡不再贅述,直接講解應用。應用1 判斷圖中有多少聯通分量 或者圖是否聯通 聯通分量 1 hdu 1213 應用2 判斷圖是否...

資料結構 並查集

一 基本概念 並查集是一種樹型的資料結構,用於處理一些不相交集合 disjoint sets 的合併及查詢問題。常常在使用中以森林來表示。集就是讓每個元素構成乙個單元素的集合,也就是按一定順序將屬於同一組的元素所在的集合合併。在一些有n個元素的集合應用問題中,通常是在開始時讓每個元素構成乙個單元素的...

資料結構 並查集

並查集 通過陣列來實現的一種將有關係的節點都聯絡起來的一種搜尋結構。實現 include include using namespace std class unionfindset void union int root1,int root2 結合兩個節點 size t findroot int ...