poj 2524 Ubiquitous Religions (并查集)
生活随笔
收集整理的這篇文章主要介紹了
poj 2524 Ubiquitous Religions (并查集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目:http://poj.org/problem?id=2524
題意:問一個大學里學生的宗教,通過問一個學生可以知道另一個學生是不是跟他信仰同樣的宗教。問學校里最多可能有多少個宗教。
也就是給定一個圖的點數和相應的邊,問有多少個連通分量。
1 #include<stdio.h> 2 #include<iostream> 3 #include<string.h> 4 5 using namespace std; 6 int bin[50010]; 7 8 int find(int a) 9 { 10 if(bin[a]!=a) 11 return bin[a]=find(bin[a]); 12 }; 13 14 int main() 15 { 16 int n,m,i,a,b,sum,x=1; 17 while(cin>>n>>m&&(n||m)) 18 { 19 sum=n; 20 for(i=1; i<=n; i++) 21 bin[i]=i; 22 23 for(i=1; i<=m; i++) 24 { 25 cin>>a>>b; 26 if(find(a)!=find(b)) 27 { 28 sum--; 29 bin[find(a)]=find(b); 30 } 31 } 32 33 printf("Case %d: %d\n",x,sum); 34 x++; 35 } 36 }
跑時有點多,4600MS 低空掠過
?
轉載于:https://www.cnblogs.com/bfshm/p/3159982.html
總結
以上是生活随笔為你收集整理的poj 2524 Ubiquitous Religions (并查集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 继承中类以及成员变量初始化的讨论。
- 下一篇: 【转】多人联机射击游戏中的设计模式应用(