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

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

SDUT 3386 小雷的冰茶幾

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

小雷的冰茶幾

Time Limit: 1000MS Memory Limit: 65536KB

PRoblem Description


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

Input


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

Output


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

Example Input


3 3 1 1 2 5 2 1 2 3 4 5 2 1 2 2 3

Example Output


Case 1: 2 Case 2: 3 Case 3: 3

Hint


本題考察并查集,參考http://www.cnblogs.com/Yan-C/p/3943940.html

Submit


#include <bits/stdc++.h>using namespace std;const int MAXN = 100010;int par[MAXN], high[MAXN];int Find(int x)//找到根{ if(par[x] == x) return x; return par[x] = Find(par[x]);}void unite(int x, int y)//合并{ x = Find(x); y = Find(y); if(x == y) return ; if(high[x] < high[y]) par[x] = y; else { par[y] = x; if(high[x] == high[y]) high[x]++; }}int main(){ int t, T; int i; scanf("%d", &T); for(t = 1; t <= T; t++) { int N, k; scanf("%d %d", &N, &k); for(i = 1; i <= N; i++) par[i] = i; memset(high, 0, sizeof(high)); for(i = 0; i < k; i++) { int x, y; scanf("%d %d", &x, &y); unite(x, y); } int ans = 0; for(i = 1; i <= N; i++)//查找一共有幾個根 if(i == par[i]) ans++; printf("Case %d: %d/n", t, ans); } return 0;}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 武城县| 句容市| 大理市| 龙岩市| 瑞丽市| 武强县| 萨嘎县| 灵璧县| 云龙县| 泸州市| 习水县| 天峻县| 财经| 绥滨县| 库车县| 陇川县| 富宁县| 防城港市| 威信县| 阳新县| 松原市| 金堂县| 大兴区| 滨州市| 越西县| 平定县| 南丹县| 乌海市| 苏尼特右旗| 凭祥市| 来凤县| 德江县| 新蔡县| 无棣县| 原平市| 海晏县| 郓城县| 武平县| 东台市| 孟津县| 澳门|