7-8 朋友圈 (25 分)
某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據「我的朋友的朋友也是我的朋友」這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。
輸入的第一行包含兩個正整數n(≤30000)和m(≤1000),分別代表學校的學生總數和俱樂部的個數。後面的m行每行按以下格式給出1個俱樂部的資訊,其中學生從1~n編號:
第i個俱樂部的人數mi(空格)學生1(空格)學生2 … 學生mi
輸出給出乙個整數,表示在最大朋友圈中有多少人。
7 4
3 1 2 3
2 1 4
3 5 6 7
1 6
4
解析:此題主要利用樹的並查集( 把都是朋友的連線在一起,形成一顆樹 ,之後查詢每乙個編號所在的樹的根即可;最後看哪一棵樹的點最多就可以了~),構造乙個find函式返回樹的根節點,cn陣列來計數朋友圈人數,t來找出最大人數的朋友圈,最終輸出t結果。正確**如下:
#include
using namespace std;
int fa[30100],cn[30100]; //全域性變數
int find(int x)
int main()
while(m--)
}for(int i=1;i<=n;i++)
t=max(t,cn[i]);
cout } 某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n... 某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸入的第一行包含兩個正整數n... 7 25 朋友圈 25分 某學校有n個學生,形成m個俱樂部。每個俱樂部裡的學生有著一定相似的興趣愛好,形成乙個朋友圈。乙個學生可以同時屬於若干個不同的俱樂部。根據 我的朋友的朋友也是我的朋友 這個推論可以得出,如果a和b是朋友,且b和c是朋友,則a和c也是朋友。請編寫程式計算最大朋友圈中有多少人。輸...PTA 朋友圈(25 分)
PTA 7 2 朋友圈(25 分)
PTA 7 25 朋友圈 25分 (並查集)