臨沂大學有很多社團,乙個學生可能會加入多個社團。為了活躍大學生業餘生活,增強體育運動積極性,臨沂大學讀書社團決定舉行大學生跳繩比賽,要求該社團成員必須參加。為了擴大影響,要求只要其他社團有乙個人參加,那麼該社團中的每乙個人都必須參加。求參加比賽至少多少人?
輸入格式:
輸入第一行包含兩個整數n和m,n(0 < n <= 30000)表示學生的數目,m(0 <= m <= 500)表示社團的數目。每個學生都有乙個唯一的編號,編號取值為0到n-1,編號為0的社團是讀書社團。 接下來有m個社團的名單,每個社團的名單在輸入中為一行。每一行先輸入乙個數k表示社團總人數。接著是社團中k個成員的編號。
輸出格式:
輸出乙個數占一行,表示參加比賽的總人數。
輸入樣例:
100 4
2 1 2
5 10 13 11 12 14
2 0 1
2 99 2
輸出樣例:
4
#include
#include
#include
using namespace std;
int father[
30005
],a[
30005
],ans,v;
int find
(int x)
while
(a!=father[a]
)return x;
}int main()
for(int i=
0;i)for
(int j=
0;j1;j++)}
for(int i=
0;i)printf
("%d\n"
,ans)
;return0;
}
7 1 參與者人數 (並查集問題)
臨沂大學有很多社團,乙個學生可能會加入多個社團。為了活躍大學生業餘生活,增強體育運動積極性,臨沂大學讀書社團決定舉行大學生跳繩比賽,要求該社團成員必須參加。為了擴大影響,要求只要其他社團有乙個人參加,那麼該社團中的每乙個人都必須參加。求參加比賽至少多少人?輸入格式 輸入第一行包含兩個整數n和m,n ...
關押罪犯 並查集 二分
s 城現有兩座監獄,一共關押著n 名罪犯,編號分別為1 n。他們之間的關係自然也極不和諧。很多罪犯之間甚至積怨已久,如果客觀條件具備則隨時可能爆發衝突。我們用 怨氣值 乙個正整數值 來表示某兩名罪犯之間的仇恨程度,怨氣值越大,則這兩名罪犯之間的積怨越多。如果兩名怨氣值為c 的罪犯被關押在同一監獄,他...
檔案傳輸 (25 分)(並查集)
當兩台計算機雙向連通的時候,檔案是可以在兩台機器間傳輸的。給定一套計算機網路,請你判斷任意兩台指定的計算機之間能否傳輸檔案?首先在第一行給出網路中計算機的總數 n 2 n 10 4 於是我們假設這些計算機從 1 到 n 編號。隨後每行輸入按以下格式給出 i c1 c2其中i表示在計算機c1和c2之間...