POJ 2524 Ubiquitous Religions
来源:互联网 发布:瓦尔特磨床编程网 编辑:程序博客网 时间:2024/05/16 13:48
问题的大意是:告诉你A和B在同一个宗教,让你判断最多一共有多少个不同的宗教
我们可以在输入的同时就将其的种类划分号,只需要判断par[i]==i,说明这是一个宗教,ans++即可
#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define MAX_N 50010int n,m;int par[MAX_N];int rank[MAX_N];//起一定的节省内存空间的作用void init(int n){ for(int i=0;i<n;i++) { par[i]=i; rank[i]=0; }}//查询树的根int find(int x){ if(par[x]==x) return x; else return par[x]=find(par[x]);//路径压缩,对于每个节点,一旦向上走到了一次根节点,就把这个店到父亲的边改为直接连向边}void unite(int x,int y){ x=find(x); y=find(y); if(x==y) return ; if(rank[x]<rank[y]) { //将x设为y的子树 par[x]=y; } else{ par[y]=x; if(rank[x]==rank[y]) rank[x]++; }}int main(){ int t=0; while(~scanf("%d %d",&n,&m)) { if(m==n&&n==0) break; init(n); int a,b; for(int i=0;i<m;i++) { scanf("%d %d",&a,&b); unite(a,b); } int ans=0; for(int i=0;i<n;i++) { if(par[i]==i) ans++; } printf("Case %d: %d\n",++t,ans); }}
0 0
- POJ 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- POJ-2524 Ubiquitous Religions
- Poj 2524 Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- POJ 2524 - Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- poj 2524 Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- POJ-2524-Ubiquitous Religions
- POJ 2524 Ubiquitous Religions
- [今日记录] PHP安装 & wordpress部署, Nginx 1.7.3, Ubuntu 12.04
- Akka 编程: 什么是Actor
- Python 的exec, eval()和execfile()
- 使用Xcode Analyze进行代码静态检查
- Apache - 请求数配置
- POJ 2524 Ubiquitous Religions
- [HDOJ 4416] Good Article Good sentence [后缀自动机]
- OLTP系统中慎用current timestamp
- hdu 1002
- Intervals+POJ+差分约束
- PHP “Notice: Use of undefined constant ”
- 黑马程序员_IO流
- 分配抄书员
- c#dll调用的一些方法