總時間限制: 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開始),接著輸出學生信仰的不同宗教的數目上限。
1091
2131
4151
6171
8191
101042
3454
8580
0
case 1:1
case 2
:7
思路:乙個簡單的並查集。**如下:
#include.h>
using namespace std;
int father[
100005];
int n,m,a,b;
int tmp=0;
int find
(int x)
//查int main()
cout<<
"case "
<<
++tmp<<
": "
<}return0;
}
1526 宗教信仰
總時間限制 5000ms 記憶體限制 65536kb 描述 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢...
NOI題庫 1526 宗教信仰
description 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算學校裡的宗教數目的上限。你可以...
NOI題庫4 3 1526 宗教信仰
描述 世界上有許多宗教,你感興趣的是你學校裡的同學信仰多少種宗教。你的學校有n名學生 0 n 50000 你不太可能詢問每個人的宗教信仰,因為他們不太願意透露。但是當你同時找到2名學生,他們卻願意告訴你他們是否信仰同一宗教,你可以通過很多這樣的詢問估算學校裡的宗教數目的上限。你可以認為每名學生只會信...