找老鄉 並查集

2022-08-28 18:03:08 字數 1312 閱讀 1956

認老鄉

大學的同學來自全國各地,對於遠離家鄉步入陌生大學校園的大一新生來說,碰到老鄉是多麼激動的一件事,於是大家都熱衷於問身邊的同學是否與自己同鄉,來自新疆的小賽尤其熱衷。但是大家都不告訴小賽他們來自**,只是說與誰同鄉,從所給的資訊中,你能告訴小賽有多少人確定是她的同鄉嗎?

輸入

每個測試例項首先包括2個整數,n(1 <= n <= 1000),m(0 <= m <= n*(n-1)/2),代表現有n個人(用1~n編號)和m組關係;

在接下來的m行裡,每行包括2個整數,a,b,代表a跟b是同鄉;

當n = 0,m = 0輸入結束;

已知1表示小賽本人。

樣例輸入

3 12 35 4

1 23 4

2 53 2

0 0輸出

對於每個測試例項,輸出乙個整數,代表確定是小賽同鄉的人數。

樣例輸出04

時間限制

c/c++語言:1000ms其它語言:3000ms

記憶體限制

c/c++語言:65536kb其它語言:589824kb

1 #include 2 #include 

3int pre[1050];4

int t[1050];5

6int find(intx)7

19return

r;20}21

22void mix(int x,int

y)2329}

3031

intmain()

3245

for(j=1;j<=m;j++)//

讀入資料進行合併

4650

int temp = pre[1];//

第乙個節點的老大

51for(int s = 1;s<=n;s++)

5255

for(k = 2;k<=n;k++)

5660 t[total] =sum;61}

62//

將結果存起來,存到t[1050]裡

本小白新學習了並查集,資料分享如下:

覺得很不錯吖~~

並查集 並查集

本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...

找朋友並查集裸題

找朋友 並查集用來合併兩個不相交的集合 主要找根,需要路徑優化 合併的時候按秩合併 ac include using namespace std const int maxn 5e4 int parent maxn rank1 maxn int m,n,p struct frda maxn b ma...

F 找朋友(裸並查集)

description 你要是願意,我就永遠存在 某人的朋友圈實在是過於龐大且複雜,要判斷兩個人是不是朋友,那還真不容易。現給出某個朋友圈關係圖,求任意給出的兩個人是否是朋友。規定 如果x和yy是朋友,y和z是朋友,那麼x和z也是朋友。如果x和y是朋友,那麼x的朋友都是y的朋友,y的朋友也都是x的朋...