資料有些弱,union函式不判不等也可以過。
依次給出 n 個人的興趣,不同人興趣相交、不同興趣所屬人員相交均屬於同一集群,求形成的不相交集群個數及每個集群的人數。
列舉每個興趣的人員,以序號最小者作為集群代表與其他成員合併,追加 cnt 陣列記錄每個集群的人數。
如題目輸入:12
3456
78910
7132
3717
1547
368則存在 ( 2, 4, 6, 8 )、( 3, 5, 7 )、( 1 )三個集群。
注意讀入輸入中的 ':'。
#include usingnamespace
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 為社交網路平台註冊的所有使用者的人數。於是這些人從...