變形金剛 並查集

2021-06-29 04:18:00 字數 1494 閱讀 8408

變形金剛

description

有一天stubird買了一台變形金剛,店員說,這台變形金剛和其他那種騙小孩子的不一樣 他真的能變形。 這台變形金剛有n個部件,他們能互相連線,組成機械人,當然,也可以變形。 但是有一天,the tesseract 的能量突然消失了,部件散落一地,當然有些部件還連線著。 現在你只有把部件全部連線起來,他就能變回原樣,例如,有4個部件,1,2是連線的,3,4也是連線著的 ,你只需要把1和3連線起來(1,4或者2,3或者2,4)他就能變回原樣啦。 他現在問你最少需要多少次連線才能把它變回原樣?

input

第一行乙個t,表示有t個測試樣例 接下來乙個n和m(n<=10^5,0<=m<=10^5),n表示部件個數,m表示有多少個部件還連線著 下面m行,每行u,v表示部件u,v是連線著的。(1<=u,v<=n)

output

求最小的連線次數

sample input

2 1 0

5 2

1 2

3 4

sample output 0 2

題意:判斷有幾個不相交集合

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int p[30005];

int rankk[30005];

int findd(int x)

void un(int x, int y)

int main()

for (int i = 0; iscanf("%d%d",&a,&b);

un(a,b);

}int ans = 0;

int f1 = findd(1);

for (int i = 2; i <= n; i++)

}printf("%d\n", ans);

}}

#include 

#include

#include

#include

#include

#include

using

namespace

std;

int p[30005];

int rankk[30005];

int vis[30000];

int findd(int x)

void un(int x, int y)

int main()

for (int i = 0; iscanf("%d%d",&a,&b);

un(a,b);

}int ans = 0;

for (int i = 1; i <= n; i++)

}printf("%d\n", ans-1);

}}

廣工校賽 並查集 變形金剛

有一天stubird買了一台變形金剛,店員說,這台變形金剛和其他那種騙小孩子的不一樣 他真的能變形。這台變形金剛有n個部件,他們能互相連線,組成機械人,當然,也可以變形。但是有一天,the tesseract 的能量突然消失了,部件散落一地,當然有些部件還連線著。現在你只有把部件全部連線起來,他就能...

變形金剛有感

這幾天同學要說去看變形金剛,恩,聽說是最新的大片。不過,為什麼都對他這麼狂熱呢?分析如下 1.很多人小時候看了變形金剛的動畫,很喜歡,所以,新片出來了一定去看看。2.也有不少人,是沒事做,和大家一塊出去看看電影玩玩,消遣一下。3.有些人,呵呵,沒有自己的看法,別人說好看就是好看,以前的沒有看過,還和...

還是變形金剛2

恩,首先感謝各位關心我看完這個電影的精神狀態問題,本人不算什麼資深影迷,不過也深知這世界上的好電影太多幾輩子也看不完,因為從小到大從電影中獲得的樂趣 也實在對電影人心存感激所以一般不會花時間碼字說乙個電影不好,寫影評誇好電影倒是常有的事,若不是小時候可迷的事情實在太少所以對這個買拷貝太失望,我 還不...