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

首頁 > 學院 > 開發設計 > 正文

小雷的冰茶幾

2019-11-08 02:00:54
字體:
來源:轉載
供稿:網友

PRoblem Description

小雷有個特殊的癖好,平時喜歡收藏各種稀奇古怪的東西,譬如。。。。,還有。。。。,也包括。。。。。小雷是一個喜歡分享的童鞋,這次小雷又給大家帶來一套神奇的東西,那就是舉世無雙的冰茶幾!顧名思義,這些茶幾被冰凍住了,最主要的是他們是易碎品,畢竟被凍住了。因此小雷要很小心翼翼的移動他們。一些茶幾是凍在一起的,因此一套冰茶幾分為好幾部分,并且如果茶幾A與B凍在一起,B與C凍在一起,那么A與C也就凍在了,即冰凍狀態有傳遞性,ABC此時會看作一個整體。為了保證冰茶幾的完整性,小雷每次只能移動一整塊冰茶幾,也就是冰凍在一起的一部分。小雷想知道他需要搬幾次才能全部搬到實驗室,你能幫小雷快速計算出答案么?

Input

多組輸入,先輸入組數T(1 < = T < = 200)。對于每組輸入,先輸入一個整數n(1 < = n < = 100000),k(0 < = k < = 100000),茶幾編號1~n。之后k行,每行兩數x,y(1 < = x,y < = n),表示第x個茶幾和第y個茶幾冰凍在一起。

Output

對于每組輸入,先輸出”Case z:”(不帶引號)表示組數,再輸出一個整數,表示小雷需要搬動的次數。

Example Input

33 11 25 21 23 45 21 22 3

Example Output

Case 1: 2Case 2: 3Case 3: 3
#include<stdio.h>#include<string.h>#define maxn 100005void init(int n,int a[]){    int i;    for(i=1;i<=n;i++)    {        a[i]=i;    }}int f(int a[],int x){    while(a[x]!=x)    {        x=a[x];    }    return x;}void merge(int u,int v,int a[]){    int x,y;    x=f(a,u);    y=f(a,v);    if(x!=y)    {        a[x]=y;    }}int main(){    int i,j,t,n,k,u,v,count;    int a[maxn];    scanf("%d",&t);    for(j=1;j<=t;j++)    {        count=0;        memset(a,0,sizeof(a));        scanf("%d%d",&n,&k);        init(n,a);        while(k--)        {            scanf("%d%d",&u,&v);            merge(u,v,a);        }        for(i=1;i<=n;i++)        {            if(a[i]==i)            {                count++;            }        }        printf("Case %d: %d/n",j,count);    }    return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张家港市| 永平县| 周宁县| 翁源县| 德惠市| 南部县| 海南省| 抚松县| 安宁市| 天祝| 响水县| 雷山县| 武平县| 漳浦县| 耿马| 凌云县| 三亚市| 塔河县| 东丰县| 宣汉县| 湘阴县| 鄂托克前旗| 靖西县| 仲巴县| 巴里| 牡丹江市| 泽州县| 宝清县| 封开县| 昭通市| 陈巴尔虎旗| 丰都县| 四会市| 宜春市| 磴口县| 桐柏县| 甘孜| 肇东市| 富顺县| 宕昌县| 安新县|