GPTL L3 003 社交集群(並查集)

2022-03-05 13:43:29 字數 806 閱讀 7333

資料有些弱,union函式不判不等也可以過。

依次給出 n 個人的興趣,不同人興趣相交、不同興趣所屬人員相交均屬於同一集群,求形成的不相交集群個數及每個集群的人數。

列舉每個興趣的人員,以序號最小者作為集群代表與其他成員合併,追加 cnt 陣列記錄每個集群的人數。

如題目輸入:12

3456

78910

7132

3717

1547

368則存在 ( 2, 4, 6, 8 )、( 3, 5, 7 )、( 1 )三個集群。

注意讀入輸入中的 ':'。

#include using

namespace

std;

const

int m=1100

;int

fri[m],cnt[m];

vector

like[m];

int find(int

x)void union(int a,int

b)int

main()

}for(int i=0;i)}}

vector

ans;

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

if(fri[i]==i) ans.push_back(cnt[i]);

sort(ans.begin(),ans.end(),greater

());

cout

for(int i=0;i)

cout

<<(i?"

":"")

}

L3 003 社交集群 並查集

時間限制 1000 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 在社交網路平台註冊時,使用者通常會輸入自己的興趣愛好,以便找到和自己興趣相投的朋友。有部分興趣相同的人們就形成了 社交集群 現請你編寫程式,找出所有的集群。輸入格式 輸入的第一行給...

L3 003 社交集群(並查集)

時間限制 1000 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 陳越 在社交網路平台註冊時,使用者通常會輸入自己的興趣愛好,以便找到和自己興趣相投的朋友。有部分興趣相同的人們就形成了 社交集群 現請你編寫程式,找出所有的集群。輸入格式 輸入的第一行給...

PAT L3 003 社交集群 並查集

l3 003 社交集群 30 分 當你在社交網路平台註冊時,一般總是被要求填寫你的個人興趣愛好,以便找到具有相同興趣愛好的潛在的朋友。乙個 社交集群 是指部分興趣愛好相同的人的集合。你需要找出所有的社交集群。輸入在第一行給出乙個正整數 n 1000 為社交網路平台註冊的所有使用者的人數。於是這些人從...