国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

數(shù)據(jù)結(jié)構(gòu)實驗:連通分量個數(shù)

2019-11-08 01:47:08
字體:
供稿:網(wǎng)友

PRoblem Description

在無向圖中,如果從頂點vi到頂點vj有路徑,則稱vi和vj連通。如果圖中任意兩個頂點之間都連通,則稱該圖為連通圖,否則,稱該圖為非連通圖,則其中的極大連通子圖稱為連通分量,這里所謂的極大是指子圖中包含的頂點個數(shù)極大。例如:一個無向圖有5個頂點,1-3-5是連通的,2是連通的,4是連通的,則這個無向圖有3個連通分量。

Input

第一行是一個整數(shù)T,表示有T組測試樣例(0 < T <= 50)。每個測試樣例開始一行包括兩個整數(shù)N,M,(0 < N <= 20,0 <= M <= 200)分別代表N個頂點,和M條邊。下面的M行,每行有兩個整數(shù)u,v,頂點u和頂點v相連。

Output

每行一個整數(shù),連通分量個數(shù)。

Example Input

23 11 23 23 21 2

Example Output

21
#include<stdio.h>#include<string.h>int a[30];void init(int n){    int i;    for(i=1;i<=n;i++)    {        a[i]=i;    }}int f(int x){    int i,j;    i=x;    while(a[x]!=x)    {        x=a[x];    }    while(a[i]!=x)    {        j=a[i];        a[i]=x;        i=j;    }    return x;}void merge(int u,int v){    int x,y;    x=f(u);    y=f(v);    if(x!=y)    {        a[x]=y;    }}int main(){    int i,t,n,m,u,v,count;    scanf("%d",&t);    while(t--)    {        scanf("%d%d",&n,&m);        count=0;        init(n);        while(m--)        {            scanf("%d%d",&u,&v);            merge(u,v);        }        for(i=1;i<=n;i++)        {            if(a[i]==i)            {                count++;            }        }        printf("%d/n",count);    }    return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 彝良县| 扎鲁特旗| 治县。| 瑞安市| 大姚县| 永安市| 隆子县| 孟州市| 应用必备| 仁怀市| 视频| 芜湖县| 城步| 专栏| 祁连县| 安平县| 凉城县| 手机| 延边| 永城市| 虞城县| 宁夏| 岳普湖县| 平泉县| 临沂市| 叶城县| 梓潼县| 霍州市| 博乐市| 南投县| 浙江省| 靖江市| 安阳市| 巨野县| 应城市| 乐至县| 常州市| 那坡县| 宁夏| 汨罗市| 康乐县|