總時間限制:
5000ms
記憶體限制:
65536kb
描述
世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。
你的學校有n名學生(0 < n <= 50000),你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算學校裡的宗教數目的上限。你可以認為每名學生只會信仰最多一種宗教。
輸入輸入包括多組資料。
每組資料的第一行包括n和m,0 <= m <= n(n-1)/2,其後m行每行包括兩個數字i和j,表示學生i和學生j信仰同一宗教,學生被標號為1至n。輸入以一行 n = m = 0 作為結束。
輸出對於每組資料,先輸出它的編號(從1開始),接著輸出學生信仰的不同宗教的數目上限。
樣例輸入
10 91 21 3
1 41 5
1 61 7
1 81 9
1 10
10 4
2 34 5
4 85 8
0 0
樣例輸出
case 1: 1case 2: 7
#include#includeusing namespace std;
int n,m;
int ans,numcase;
const int maxn=1e5;
int fa[maxn];
int find(int x)
void merge(int x,int y)
int main()
for(int i=1;i<=n;i++) if(fa[i]==i) ans++;
printf("case %d: ",numcase);
printf("%d\n",ans);
}return 0;
}
NOI題庫 1526 宗教信仰
description 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算學校裡的宗教數目的上限。你可以...
OpenJudge 1526 宗教信仰
總時間限制 5000ms 記憶體限制 65536kb 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算...
NOI題庫4 3 1526 宗教信仰
描述 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算學校裡的宗教數目的上限。你可以認為每名學生只會信...