海贼OJ并查集练习题:朋友圈

题目描述

​ 所谓一个朋友圈子,不一定其中的人都互相直接认识。

例如:小张的朋友是小李,小李的朋友是小王,那么他们三个人属于一个朋友圈。

​现在给出一些人的朋友关系,人按照从 1 到 n 编号在这中间会进行询问某两个人是否属于一个朋友圈,请你编写程序,实现这个过程。

输入

第一行输入两个整数 n,m(1≤n≤10000,3≤m≤100000),分别代表人数和操作数。

接下来 m 行,每行三个整 a,b,c(a∈[1,2], 1≤b,c≤n)
当 a=1时,代表新增一条已知信息,b,c 是朋友
当 a=2 时,代表根据以上信息,询问 b,c 是否是朋友
输出

对于每个 a=2 的操作,输出『Yes』或『No』代表询问的两个人是否是朋友关系。

样例输入

6 5
1 1 2
2 1 3
1 2 4
1 4 3
2 1 3
样例输出

No
Yes

思路:并查集的简单应用,无需多言,上代码

#include<iostream>
using namespace std;int n;
int Father[10001];int find(int x) {if (Father[x] == x) return x;else return Father[x] = find(Father[x]);
}   //查找根结点int main() {int m;cin >> n >> m;for (int i = 1; i <= n; i++) Father[i] = i;while (m--) {int a, b, c;cin >> a >> b >> c;if (a == 1) Father[find(c)] = find(b);   //合并if (a == 2) {if (find(b) == find(c)) cout << "Yes\n";else cout << "NO\n";}}return 0;
}
//声明Father数组时如果使用动态数组int * Father=new int[n+1];或者int<vector>Father(n+1);会超时

海贼OJ并查集练习题:朋友圈相关推荐

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

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

  2. java并查集找朋友圈_图—并查集(解决朋友圈问题)

    图也是一种 非线性结构,是由多个顶点组成的关系集合组成的一种数据结构.图可以分为两种,无向图和有向图. ★图的定义: ★典型问题: 利用图能够解决很多问题,这里有一个较为典型的问题,假如已知有n个人和 ...

  3. 算到怀疑人生!如何用并查集解决朋友圈个数问题?

    作者 |  channingbreeze 责编 | 郭芮 小史是一个应届生,虽然学的是电子专业,但是自己业余时间看了很多互联网与编程方面的书,一心想进BAT互联网公司. 今天小史去了一家社交小巨头公司 ...

  4. 并查集解决朋友圈问题

    引入 最近在网上看到了这样一道面试题: 假如已知有n个人和m对好友关系(存于数组r)如果两个人是直接或间接的好友(好友的好友的好友-),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋 ...

  5. 并查集---找朋友圈个数问题,连通度问题,等的有效算法

    数据结构方面,你了解并查集么? 上交05年计算机复试 上机 畅通工程问题: 例题1 修路连通问题 某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇.省政府"畅通 ...

  6. java并查集找朋友圈_并查集求朋友圈最大人数

    #include #include using namespace std ; int findRoot( int set[ ], int s ) { if (s == set[s]) return ...

  7. 查并集(朋友圈问题)

    假设有A,B,C,D,E,5个人A,B在一个朋友圈内,B,C在一个朋友圈内,这样A,B,C就在一个朋友圈内,总共有多少个朋友圈. 当人数较多时不容易算出. 可以利用数据结构查并集. 设5个人的初值为- ...

  8. 通俗易懂超有爱的并查集~~~

    一,杭电oj并查集题目-畅通工程 二,简单分析题目大意 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的.最后要解决的是整幅图的连通性问题.比如随意给你两个 ...

  9. hdu 3081(并查集+最大流)

    题目大意: n个男孩n个女孩,女孩选男孩,每个女孩都要选到不同的人 k对女孩有相同选择标准, 女孩每轮都选择没选过的男孩, 问总共能选几轮.解题思路:女孩编号1......n,男孩编号n+1,n+2, ...

最新文章

  1. 球面贴图,立方体贴图的比较
  2. 有人工裁判,就会有争执
  3. boost::statechart模块实现无效结果分配测试
  4. C语言趣味程序百例精解
  5. Flash位图锯齿的处理办法
  6. 模拟电子技术不挂科学习笔记3(放大电路的分析方法)
  7. Codeforces Round #628 (Div. 2)C - Ehab and Path-etic MEXs
  8. Bailian2796 Bailian3681 数字求和【序列处理】
  9. 大数据:知识,真正的价值体现
  10. 搭建服务器处理系统(基于netty),基于Netty的农业物联网服务器系统设计.PDF
  11. Java可以做什么工作
  12. 一文告诉你16条微信小程序推广渠道大全
  13. SPR EAD NET 6
  14. android 微博开发者平台,微博Android平台SDK文档V.pdf
  15. 使用python进行缺失数据估算(missing data imputation in python)
  16. ajax的响应与取消响应
  17. powershell课后作业
  18. 什么是绿色工厂?申报绿色工厂对企业有什么好处?
  19. 基于java web的在线考试系统(源码+论文)
  20. 视频号如何做出美食爆款视频,美食类爆款技巧

热门文章

  1. 京东Offer难拿吗?做到这样,想不拿offer都难
  2. SSL 证书无法通过校验问题解决.
  3. JAVA:List 与 数组 相互转换
  4. LeetCode算法题17:电话号码的字母组合(Java版)
  5. python内置函数 enumerate用法
  6. python发送qq邮件_Python实现给qq邮箱发送邮件的方法
  7. 【JZOJ3620】【BOI2011】trapezoid(线段树)
  8. Java实现简单的汽车租赁系统
  9. pycharm激活错误提示:JetBrains Account connection error: java.security.Signatur...256 but was expecting 512
  10. 7月10日服务器例行维护公告,7月10日服务器例行维护公告(已完成)