SHUOJ幾隊周尼瑪

2021-08-04 02:23:49 字數 1904 閱讀 2272

超級無敵張小豪是a國的一名勇士,a國的勇士都要靠獲得能量變得更強,在a國勇士獲得能量只有唯一的一種途徑就是膜拜宙斯神——周尼瑪(桑!!!)。要膜拜周尼瑪就要去到遙遠的大日國那裡有好多好多周尼瑪(桑!!!)。但是周尼瑪(桑!!!)是一種群居動物,一隊周尼瑪(桑!!!)中都有且只有乙個領袖叫周尼瑪你妹(桑!!!)超級無敵張小豪勇士必須拿著一炷香到周尼瑪你妹(桑!!!)面前膜拜三下即可獲得一點能量。

膜拜必須遵循一些規則:

對於乙個周尼瑪你妹(桑!!!)只能膜拜一次;

不能膜拜周尼瑪(桑!!!);

一次膜拜用一炷香且一炷香只能膜拜一次;

現在問題出現了,小豪準備啟程去大日國,在走之前小豪要準備買香但是小豪不知道大日國一共有幾隊周尼瑪(桑!!!),小豪既想每個周尼瑪你妹(桑!!!)都膜拜到,又想帶過去的香能用完不浪費。於是小豪打聽小道訊息搞過來了一張周尼瑪(桑!!!)家族譜。

家族譜上有若干對數字

eg:

1 2  

2 4

表示:

周尼瑪1號和周尼瑪2號是一隊的

周尼瑪2號和周尼瑪4號是一隊的

若譜上告訴你周尼瑪x號和周尼瑪y號是一隊的周尼瑪y號和周尼瑪z號是一隊的

那也就代表了周尼瑪x號和周尼瑪z號是一隊的了。

輸入 the input starts with an integer t(1<=t<=10) which indicate the number of test cases. then t test cases follow. each test case starts with two integers n and m(1<=n<= 30000,1<=m<= 500000). n indicates the number of 周尼瑪, the 周尼瑪 are marked from 1 to n. then m lines follow. each line consists of two integers a and b(a!=b), that means 周尼瑪 a號 and 周尼瑪 b號 in the same team. there will be a blank line between two cases.

輸出 for each test case, just output how many tables ignatius needs at least. do not print any blanks.

樣例輸入

2 5 3

1 2

2 3

4 5

5 1

2 5

樣例輸出 2 4

自作幽默還特別懶的出題人扯了這麼多,講的意思其實就是在n個人中有人相互認識,且大家可以通過中間人相互認識,最後屬於同一張關係網的人歸為一隊,問這麼分下來有幾隊人。這就是hdu1213題,乙個關於並查集的基本問題。當時想這個問題和找資料花了很久時間,畢竟是什麼都沒學的萌新。

我的想法是對於每行資料中一對相互認識的人a和b,將b的根節點值賦給a的根節點。最終有多少根節點就有多少隊。

關於並查集的問題查了很多資料,也看了很多大佬的部落格,感覺最有幫助的還是這篇[並查集]文末有給出鏈結,講的肯定比我清楚多了,當然也不能直接用在這道題裡。

我的**如下

#include

int root[30005];

void mix(int x,int y);

int tree(int x);

int main()

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

printf("%d\n",cnt);

}return0;}

int tree(int x)//根節點賦值+路徑壓縮

return a;

}void mix(int x,int y)//相互認識,修改根節點

並查集

SHUOJ新增好友

tony最近喜歡上了龍之谷遊戲,所以他想叫上他的好友組建乙個公會來一起享受這款遊戲。tony一共有n個好友,他可以叫上任意k 1 k n 個好友來組建公會,並且所有好友都會答應他的請求。問tony一共可以有多少種方案組建這個公會?只要不是完全相同的人組建的方案視為不同方案,並且tony至少要叫上乙個...

SHUOJ 1611 矩陣連乘問題(dp)

給定n個矩陣a1,a2,an,其中,ai與aj 1是可乘的,i 1,2,n 1。你的任務是要確定矩陣連乘的運算次序,使計算這n個矩陣的連乘積a1a2 an時總的元素乘法次數達到最少。例如 3個矩陣a1,a2,a3,階分別為10 100 100 5 5 50,計算連乘積a1a2a3時按 a1a2 a3...

shuoj1973 雞排銷售查詢系統

看著蟲蟲重寫的鐵路購票系統使用非常方便,xyiyy 想要蟲蟲幫忙實現乙個雞排銷售情況查詢的系統,主要是針對 xx路上銷售情況的查詢。已知在 xx路上,從東往西共有 n個住戶,標號分別為1,2 n 1,n,初始時,所有住戶購買的雞排數都為 0。現只要求實現兩個非常簡單的功能,就是更新銷售資訊和查詢 l...