D - Ubiquitous Religions

在三角洲不同地区生活的人们有自己信仰的图腾,为了避免冒犯到他们,首脑们现在想知道他们最多可能有多少种图腾。但这对他们来说是件无趣的事,所以现在任务交到了你的身上。 当你看到两个地区的人们在膜拜同一外观的石像时,就可以断定他们拥有同样的图腾。已知三角洲共有n(n <= 50000)块区域,你看到了m(m<=n(n-1)/2)组地区的人们在膜拜同样的石像,现在请问他们至多有多少种图腾。
Input
有多组数据。对于每组数据:
第一行:两个整数n和m。
以下m行:每行包含两个整数i和j,表示你发现i地区和j地区的人们在膜拜同样的石像。地区编号从1到n。
输入的最后一行中,n = m = 0。
Output
对于每组测试数据,输出一行,输出数据序号( 从1开始) 和图腾的最大数量。(参见样例)
Sample Input
10 9
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

思路:
这道题其实就是一个并查集的板子题 我们需要去判断连通块一共有多少 用并查集进行数据压缩 后面简单的判断就好

AC代码
//并查集
#include<iostream>
#include<cstring>
using namespace std;int pre[1000000];
int find(int i)
{if(pre[i]!=i){pre[i]=find(pre[i]);}return pre[i];//带路径压缩
}
int m,n;
int tmpa,tmpb;
int sum;
int main()
{while(cin >> m >> n){if(m==0 && n==0) break;memset(pre,0,sizeof(pre));int ans=0;for(int i=1;i<=m;i++)pre[i]=i;for(int i=0;i<n;i++){cin >> tmpa >> tmpb;int a=find(tmpa);int b=find(tmpb);if(a!=b)pre[a]=b;}for(int i=1;i<=m;i++)if(pre[i]==i)ans++;cout << "Case " << ++sum <<": " << ans << endl;}return 0;
}

Ubiquitous Religions 并查集相关推荐

  1. Ubiquitous Religions (并查集)

    Ubiquitous Religions POJ - 2524 当今世界有许多不同的宗教,很难跟踪它们.你有兴趣找出你大学里有多少不同的宗教学生相信. 你知道你的大学里有 n 学生 (0 < n ...

  2. poj 2524 Ubiquitous Religions (并查集)

    题目:http://poj.org/problem?id=2524 题意:问一个大学里学生的宗教,通过问一个学生可以知道另一个学生是不是跟他信仰同样的宗教.问学校里最多可能有多少个宗教. 也就是给定一 ...

  3. 【转】并查集MST题集

    转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...

  4. POJ-2524 Ubiquitous Religions(无处不在的宗教)解题报告(并查集)

    目录 题目描述 思路分析 今天没有考试,那就再刷点题吧(难道就不怕c语言挂科吗?).因为昨天写了道并查集,所以今天再来一道,还是有所收获的. 题目描述 题目:https://vjudge.net/pr ...

  5. POJ2524——宗教(Ubiquitous Religions)【图论,并查集】

    正题 题目链接: http://poj.org/problem?id=2524 大意 有n个学生,告诉你哪两个学生的宗教相等,求校园里有多少个宗教. 解题思路 并查集链接就好了 代码 #include ...

  6. 【并查集】POJ 2524 Ubiquitous Religions

    POJ 2524 Ubiquitous Religions 就是看集合的数量是多少,将所有节点的祖先结点放进set,输出size就行了 #include <iostream> #inclu ...

  7. pku2524-----Ubiquitous Religions(初次接触并查集)

    方法一:time limited:对于合并操作要搜遍全部元素 Code //并查集 //方法一:用集合中最小元素标记集合. //对于合并操作要搜遍全部元素. #include<stdio.h&g ...

  8. 并查集入门+初级专题训练

    介绍   摘自罗勇军,郭卫斌的<算法竞赛入门到进阶>上的说明:   并查集(Disjoint Set)是一种非常精巧而且食用的数据结构,它主要用于处理一些不相交集合的合并问题.经典的例子有 ...

  9. 并查集---宗教信仰

    并查集-宗教信仰 题目: There are so many different religions in the world today that it is difficult to keep t ...

  10. 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈

    题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...

最新文章

  1. python 重复输出字符串
  2. Python 操作字典 的几个技巧
  3. 图论 —— 生成树 —— 最小瓶颈生成树
  4. axios config里自定义属性,使用拦截器拦截,无法拿到自定义属性问题
  5. 鸟瞰 MySQL,唬住面试官!
  6. jQuery+CSS动态改变class
  7. 手机 modem 开发(7)---3GPP协议下载地址
  8. java两个二进制数求和,Leetcode 67:Add Binary(二进制求和)
  9. 当有脚本错误时,停止运行。
  10. import关键字的使用
  11. LAMP架构调优(七)——Apache Prefork模式调优
  12. wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
  13. vue下用canvas实现图片标注工具,允许图片放大、缩小,允许拖拽图片
  14. dtcms配置多参数
  15. 批量给多个 Excel 工作薄文件中插入新的工作表 Sheet
  16. python 弱引用
  17. 2016 Youtube 推荐系统介绍
  18. Location is not available,the folder or directory is corrupted and unreadable
  19. XML解析(DOM方式)
  20. 上溯造型、下溯造型的理解

热门文章

  1. 客服坐席聊天页面html,WebSocket实现简单客服聊天系统
  2. 科学计算机算方差与期望,期望、方差、协方差及相关系数的基本运算
  3. 诚之和:百世离场快递恶战“结束的开始”
  4. 小愿景,职业发展,思维拓展
  5. 大创会议议程2021-10-17
  6. Harry Potter and the Goblet of Fire
  7. 五款好用到爆炸的小众软件,用过的都好说!建议收藏转发
  8. 强烈推荐:程序员接私活那点事
  9. 传智博客 JavaWeb方面的所有知识 听课记录 经典
  10. Android WebView播放视频flash(判断是否安装flash插件)