Ubiquitous Religions 并查集
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 并查集相关推荐
- Ubiquitous Religions (并查集)
Ubiquitous Religions POJ - 2524 当今世界有许多不同的宗教,很难跟踪它们.你有兴趣找出你大学里有多少不同的宗教学生相信. 你知道你的大学里有 n 学生 (0 < n ...
- poj 2524 Ubiquitous Religions (并查集)
题目:http://poj.org/problem?id=2524 题意:问一个大学里学生的宗教,通过问一个学生可以知道另一个学生是不是跟他信仰同样的宗教.问学校里最多可能有多少个宗教. 也就是给定一 ...
- 【转】并查集MST题集
转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 ...
- POJ-2524 Ubiquitous Religions(无处不在的宗教)解题报告(并查集)
目录 题目描述 思路分析 今天没有考试,那就再刷点题吧(难道就不怕c语言挂科吗?).因为昨天写了道并查集,所以今天再来一道,还是有所收获的. 题目描述 题目:https://vjudge.net/pr ...
- POJ2524——宗教(Ubiquitous Religions)【图论,并查集】
正题 题目链接: http://poj.org/problem?id=2524 大意 有n个学生,告诉你哪两个学生的宗教相等,求校园里有多少个宗教. 解题思路 并查集链接就好了 代码 #include ...
- 【并查集】POJ 2524 Ubiquitous Religions
POJ 2524 Ubiquitous Religions 就是看集合的数量是多少,将所有节点的祖先结点放进set,输出size就行了 #include <iostream> #inclu ...
- pku2524-----Ubiquitous Religions(初次接触并查集)
方法一:time limited:对于合并操作要搜遍全部元素 Code //并查集 //方法一:用集合中最小元素标记集合. //对于合并操作要搜遍全部元素. #include<stdio.h&g ...
- 并查集入门+初级专题训练
介绍 摘自罗勇军,郭卫斌的<算法竞赛入门到进阶>上的说明: 并查集(Disjoint Set)是一种非常精巧而且食用的数据结构,它主要用于处理一些不相交集合的合并问题.经典的例子有 ...
- 并查集---宗教信仰
并查集-宗教信仰 题目: There are so many different religions in the world today that it is difficult to keep t ...
- 并查集c++代码_[Leetcode 每日精选](本周主题-并查集) 547. 朋友圈
题目难度: 中等 原题链接 今天继续来做并查集的问题, 这道题仍然比较基础, 而且也是个比较接近现实的问题了. 大家在我的公众号"每日精选算法题"中的聊天框中回复 并查集 就能看到 ...
最新文章
- python 重复输出字符串
- Python 操作字典 的几个技巧
- 图论 —— 生成树 —— 最小瓶颈生成树
- axios config里自定义属性,使用拦截器拦截,无法拿到自定义属性问题
- 鸟瞰 MySQL,唬住面试官!
- jQuery+CSS动态改变class
- 手机 modem 开发(7)---3GPP协议下载地址
- java两个二进制数求和,Leetcode 67:Add Binary(二进制求和)
- 当有脚本错误时,停止运行。
- import关键字的使用
- LAMP架构调优(七)——Apache Prefork模式调优
- wifi 流量劫持_无线网被流量劫持了怎么弄,WiFi流量被劫持如何处理
- vue下用canvas实现图片标注工具,允许图片放大、缩小,允许拖拽图片
- dtcms配置多参数
- 批量给多个 Excel 工作薄文件中插入新的工作表 Sheet
- python 弱引用
- 2016 Youtube 推荐系统介绍
- Location is not available,the folder or directory is corrupted and unreadable
- XML解析(DOM方式)
- 上溯造型、下溯造型的理解
热门文章
- 客服坐席聊天页面html,WebSocket实现简单客服聊天系统
- 科学计算机算方差与期望,期望、方差、协方差及相关系数的基本运算
- 诚之和:百世离场快递恶战“结束的开始”
- 小愿景,职业发展,思维拓展
- 大创会议议程2021-10-17
- Harry Potter and the Goblet of Fire
- 五款好用到爆炸的小众软件,用过的都好说!建议收藏转发
- 强烈推荐:程序员接私活那点事
- 传智博客 JavaWeb方面的所有知识 听课记录 经典
- Android WebView播放视频flash(判断是否安装flash插件)