文章目录

  • Question
  • Ideas
  • Code

Question

或许你并不知道,你的某个朋友是你的亲戚。

他可能是你的曾祖父的外公的女婿的外甥女的表姐的孙子。

如果能得到完整的家谱,判断两个人是否是亲戚应该是可行的,但如果两个人的最近公共祖先与他们相隔好几代,使得家谱十分庞大,那么检验亲戚关系实非人力所能及。

在这种情况下,最好的帮手就是计算机。

为了将问题简化,你将得到一些亲戚关系的信息,如Marry和Tom是亲戚,Tom和Ben是亲戚,等等。

从这些信息中,你可以推出Marry和Ben是亲戚。

请写一个程序,对于我们的关于亲戚关系的提问,以最快的速度给出答案。

输入格式
输入由两部分组成。

第一部分以 N,M
开始。N
为问题涉及的人的个数。这些人的编号为 1,2,3,…,N
。下面有 M
行,每行有两个数 ai,bi
,表示已知 ai
和 bi
是亲戚。

第二部分以 Q
开始。以下 Q
行有 Q
个询问,每行为 ci,di
,表示询问 ci
和 di
是否为亲戚。

输出格式
对于每个询问 ci,di
,输出一行:若 ci
和 di
为亲戚,则输出“Yes”,否则输出“No”。

数据范围
1≤N≤20000
,
1≤M≤106
,
1≤Q≤106
输入样例:
10 7
2 4
5 7
1 3
8 9
1 2
5 6
2 3
3
3 4
7 10
8 9
输出样例:
Yes
No
Yes

Ideas

// 返回x的根节点+路径压缩
int find(int x)
{if (x != p[x]) p[x] = find(p[x]);return p[x];
}p[find(a)] = find(b); // 合并集合

Code

#include <iostream>using namespace std;
const int N = 20010;
int p[N]; // p[x]存储x的父节点// 返回x的根节点+路径压缩
int find(int x)
{if (x != p[x]) p[x] = find(p[x]);return p[x];
}int main()
{int n, m;scanf("%d%d", &n, &m);for (int i = 1; i <= n; i ++) p[i] = i; //下标从1开始while(m --){int a, b;scanf("%d%d", &a, &b);p[find(a)] = find(b); // 合并集合}scanf("%d", &m);while(m --){int a, b;scanf("%d%d",&a, &b);if (find(a) == find(b)) puts("Yes");else puts("No");}return 0;
}

1249. 亲戚(并查集)相关推荐

  1. P1551 亲戚 并查集

    P1551 亲戚 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么 ...

  2. 并查集——亲戚(洛谷 P1551)

    题目选自洛谷P1551 并查集入门题目,简单有趣的例子了解并查集的使用 主要分为三个操作: 1)初始化 没有什么说的,就是用下标当做标号. 2)合并操作 如果两个关系的"老大"不一 ...

  3. 亲戚关系关系算法java程序_C++并查集亲戚(Relations)算法实例

    本文实例讲述了C++并查集亲戚(Relations)算法.分享给大家供大家参考.具体分析如下: 题目: 亲戚(Relations) 或许你并不知道,你的某个朋友是你的亲戚.他可能是你的曾祖父的外公的女 ...

  4. 并查集应用-判断亲戚关系

    题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如 ...

  5. P1551 亲戚(并查集)

    亲戚 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 题目描述 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲 ...

  6. 亲戚关系(并查集(YYOJ

    题目描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系. 规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚.如果x,y是 ...

  7. 每日一题——洛谷 P1551 亲戚 (并查集)

    大家好,我是爬行系,今天打卡并查集相关例题 文章目录 并查集 1.概念 2.模板 例题 1.题目描述 2.AC代码 更多练习题 总结 并查集 1.概念 并查集的思想是用一个数组表示了整片森林(pare ...

  8. 并查集专题(亲戚,格子游戏,银河英雄传说)

    文章目录 序言 正文 亲戚 时间限制: 1000 ms 空间限制: 262144 KB 题目描述 输入 输出 样例输入 样例输出 讲解 Wrong Answer Code Accepted Code ...

  9. 【图】【并查集】亲戚

    亲戚(relation.cpp) 时间限制: 1 Sec  内存限制: 64 MB 题目描述 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易. 现在给出某个亲戚关系图,求任意给出的两个人 ...

  10. 洛谷P1551 亲戚(并查集)

    题目链接 思路: 并查集的模板题目 关于并查集相关知识可以看此博客 AC代码 #include<iostream> #include<cstdio> #include<a ...

最新文章

  1. freetype 安装
  2. 3.1.5 改善模型的表现
  3. Strings in the Pocket
  4. Solr Zookeeper ACL权限配置
  5. python 切片器_PowerBI-将日期显示为星期作为切片器
  6. 10-1-数据库连接池
  7. Livecoin交易所被盗BTC与3天前EXMO被盗BTC转入同一地址
  8. jquery判断自己是父节点的第几个子节点
  9. python面向对象设计角色攻击_Python技能:面向对象基础实战之英雄联盟
  10. 信息路由器动态路由配置
  11. 平面一般力系最多可以求解_利用平面一般力系的平衡方程最多可求解几个未知量。( )...
  12. unity3d UniWebView插件的使用和经验
  13. MAE代码阅读(一)
  14. 软件工程大作业进度报告
  15. hfs支持php文件系统,HFS+文件系统的发展及特点介绍
  16. 用计算机管理员同步一下文件,《计算机应用基础(Windows 7 Office 2010)同步训练》0711.docx...
  17. 第三章 ArcGIS坐标系与投影变换
  18. 显卡Memory Clock上限问题排查实践
  19. 应届生前端面试题笔记
  20. PS2 格兰蒂亚3 汉化研究

热门文章

  1. 2021年中国轮式拖拉机供需现状及竞争格局分析,中国一拖市占率接近20%「图」
  2. js搜索关键字,并高亮显示
  3. WEEE(5500)包20顿回收可以包过
  4. 谁是卧底在线游戏实战开发thinkphp5+socketio+vue全家桶
  5. 学以致用——Java源码——抛双骰游戏图形界面版(GUI-Based Craps Game)
  6. 图片处理+高速计算机配置,PS越用越卡?4招做好性能优化,让你的电脑再战3年!...
  7. 2021年加氢工艺考试报名及加氢工艺考试资料
  8. 【直击面试】JVM这些面试题你都会了吗
  9. 服务器如何托管装系统,合伙托管服务器全程体验(中)
  10. 安微大学计算机软工调剂复试题目,安徽大学复试