POJ P2524 Ubiquitous Religions
2013-11-01 20:40
357 查看
Ubiquitous Religions
你知道你大学有n个学生(0<n<=50000)。你直接去问他们的宗教信仰是不可行。此外,许多学生不舒服表达自己的信仰。为了避免这些问题的方法之一是向m(0≤m≤n(n-1)/ 2)对学生问他们是否他们信奉同一宗教(例如他们可能知道他们都参加相同的教堂)。从这个数据,你可能不知道,每个人都相信,但你可以知道你们学校最多有多少种不同的宗教。你可以假定每个学生最多信仰一个宗教。
不同宗教的最大数量,
1 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
10 4
2 3
4 5
4 8
5 8
0 0
Case 2: 7
题解:又是一道并查集的题目,而且还是英文题。。。题目已经翻译出来,简单叙述如下,就是通过询问m对同学是否为相同的宗教信仰,让你求出这个学校不同宗教信仰的最大值。还是用到了并查集的算法,Initialization()函数用来初始化各个点的父节点;getfather()函数用来寻找各节点的头结点;Relationship()函数用来链接各相同头结点。
Description
世界上有如此多的不同的宗教,它是很难跟踪他们。你能在你们的学校里找到多少种大家感兴趣的宗教?你知道你大学有n个学生(0<n<=50000)。你直接去问他们的宗教信仰是不可行。此外,许多学生不舒服表达自己的信仰。为了避免这些问题的方法之一是向m(0≤m≤n(n-1)/ 2)对学生问他们是否他们信奉同一宗教(例如他们可能知道他们都参加相同的教堂)。从这个数据,你可能不知道,每个人都相信,但你可以知道你们学校最多有多少种不同的宗教。你可以假定每个学生最多信仰一个宗教。
Input
输入包括一例数。每一种情况下,从一个线指定整数n和m接下来的m行由两个整数i和j,i和j指定学生信奉同一宗教。学生编号1至n的输入端通过一个线中,n = m =0。Output
对于每个测试案例,在一行的例数打印(从1开始)其次是在大学的学生相信不同宗教的最大数量,
Sample Input
10 91 2
1 3
1 4
1 5
1 6
1 7
1 8
1 9
1 10
10 4
2 3
4 5
4 8
5 8
0 0
Sample Output
Case 1: 1Case 2: 7
题解:又是一道并查集的题目,而且还是英文题。。。题目已经翻译出来,简单叙述如下,就是通过询问m对同学是否为相同的宗教信仰,让你求出这个学校不同宗教信仰的最大值。还是用到了并查集的算法,Initialization()函数用来初始化各个点的父节点;getfather()函数用来寻找各节点的头结点;Relationship()函数用来链接各相同头结点。
#include <iostream> #define MAX 50001 int father[MAX]; using namespace std; int getfather(int x){ if(x!=father[x]) father[x]=getfather(father[x]); return father[x]; } void Initialization(int n) { int i; for(i=1;i<=n;i++) father[i]=i; } void Relationship(int x,int y){ x=getfather(x); y=getfather(y); if(x!=y) father[y]=x; } int main() { int n,m,i,a,b,sum; int time=1; while(cin>>n>>m) { int sum=0; if(m==0 && n==0) break; Initialization(n); for(i=1;i<=m;i++) { cin>>a>>b; Relationship(a,b); } for(i=1;i<=n;i++) if(i==getfather(i)) sum++; cout<<"Case "<<time++<<": "<<sum<<endl; } }
相关文章推荐
- Deque
- 八皇后问题 EightQueen
- systemui statusbar service 小结
- 函数sys_guid() 和 SEQUENCE
- 【数字图像处理】使用kmeans算法对TrueColor图片进行优化
- Concurrency Programming Guide 并发设计指引(二)
- easyui的datagird虚拟渲染解决卡死问题
- 2013.7.7 webserver动态相关
- Unix环境高级编程apue.h
- 经典集合 与 IQueryable集合 的差别
- Hierarchical query-层次查询之START WITH CONNECT BY用法
- IOS系列——UIImageView的属性
- POJ 3384 Feng Shui 半平面交
- 高性能的MySQL(7)Query Cache 详解
- metro ui
- ios7UITableView 的头部出现一段空白View
- 优化UITableView的几个技巧
- Quick and Easy Ways to Quiet Your Mind
- BlockingQueue
- duilib进阶教程 -- TreeView控件的不足 (7)