题目背景

  若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。

题目描述

规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也都是x的亲戚。

输入输出格式

输入格式:

第一行:三个整数n,m,p,(n<=5000,m<=5000,p<=5000),分别表示有n个人,m个亲戚关系,询问p对亲戚关系。

以下m行:每行两个数Mi,Mj,1<=Mi,Mj<=N,表示Ai和Bi具有亲戚关系。

接下来p行:每行两个数Pi,Pj,询问Pi和Pj是否具有亲戚关系。

输出格式:

P行,每行一个’Yes’或’No’。表示第i个询问的答案为“具有”或“不具有”亲戚关系。

输入输出样例

输入样例#1:

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

Yes
Yes
No

说明

非常简单的并查集入门题哦!!!

for循环代码

#include<cstdio>
#include<iostream>
using namespace std;
int papa[5010];
int find_pa(int x)
{
int t1,t2=x;
for(;papa[x]^x;)x=papa[x];
for(;t2^papa[t2];){
t1=papa[t2];
papa[t2]=x;
t2=t1;
}
return x;
}
void onion(int x,int y)
{
x=find_pa(x),y=find_pa(y);
papa[y]=x;
}
int main()
{
int n,m,p;
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=n;i++)papa[i]=i;
for(int x,y;m;m--){
scanf("%d%d",&x,&y);
onion(x,y);
}
for(int x,y;p;p--){
scanf("%d%d",&x,&y);
if(!(find_pa(x)^find_pa(y)))
puts("Yes");
else puts("No");
}
return 0;
}

递归代码

#include<cstdio>
using namespace std;
int n,m,p,father[5010];
int find(int x)
{
if(father[x]!=x)
father[x]=find(father[x]);
return father[x];
}
int main()
{
int x,y;
scanf("%d%d%d",&n,&m,&p);
for(int i=1;i<=n;i++)
father[i]=i;
for(int i=m;i>=1;i--)
{
scanf("%d%d",&x,&y);
x=find(x);
y=find(y);
if(x!=y)
father[y]=x;
}
for(int i=1;i<=p;i++)
{
scanf("%d%d",&x,&y);
if(find(x)==find(y))
puts("Yes");
else
puts("No");
}
return 0;
}

luogu1151 亲戚的更多相关文章

  1. 家族/亲戚(relation)

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

  2. 关于How,刷墙和亲戚

    对于需求而言,最宏观的概念是六字诀: Who->Where->Which->How->End->Effect:谁(Who)在什么地方(Where),对那个对象(Which ...

  3. codevs 5929 亲戚

    5929 亲戚 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不 ...

  4. 洛谷 P1551 亲戚(并查集模板)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1551 思路: 很显然地我们会发现,这是一道并查集的模板题,并且是考察了并查集中的”并“和”查“的操 ...

  5. B.DongDong认亲戚

    链接:https://ac.nowcoder.com/acm/contest/904/B 题意: DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义 ...

  6. [LUOGU] P1551 亲戚

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

  7. P1551 亲戚 洛谷

    https://www.luogu.org/problem/show?pid=1551 题目背景 若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个 ...

  8. 洛谷——P1551 亲戚

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

  9. cogs 259. 亲戚

    259. 亲戚 ★   输入文件:relations.in   输出文件:relations.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]     或许你并不知道,你 ...

随机推荐

  1. [Android]竖直滑动选择器WheelView的实现

    以下内容为原创,转载请注明: 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3819304.html 公司项目中有这么一个需求,所以需要自己实现下.效 ...

  2. Java Android HTTP实现总结

    Java Android HTTP实现总结 Http(Hypertext Transfer Protocol)超文本传输协议,是一个基于请求/响应模式的无状态的协议,Http1.1版给出了持续连接的机 ...

  3. PCM(Pulse-code modulation)脉冲编码调制

    在音频处理中,我们会经常听到PCM数据,那么什么是PCM数据呢? PCM数据就是模拟信号经过PCM以后的数字信号,PCM就是把音频信号由模拟信号(时间连续,取值连续)转为数字信号(时间离散,取值离散) ...

  4. 安卓开发基础之tween动画基本使用,代码教学

    xml代码块: <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro ...

  5. Content-Type: application/vnd.ms-excel">

    如果要将查询结果导出到Excel,只需将页面的Context-Type修改一下就可以了:   header( "Content-Type: application/vnd.ms-excel& ...

  6. Mac OS 下的解压缩软件——The Unarchiver

    The Unarchiver 是 Mac 上最流行的解压软件,免费开源.操作方式与系统自带解压工具 Archive Utility.app 一样,双击自动解压.最爽的一点是把解压后原始文件直接仍进废纸 ...

  7. 一秒钟看懂SaaS、CRM、OA、ERP、HR、进销存

    自2014年以来,SaaS.CRM.OA.ERP.HR.APM.进销存.财务系统等,这些名词大量出现在微信朋友圈.电视楼宇广告和千百万融资资讯中.它们到底是什么意思?相互之间又有什么区别?在这个飞速发 ...

  8. .NET项目开发—浅谈面向接口编程、可测试性、单元测试、迭代重构(项目小结)

    阅读目录: 1.开篇介绍 2.迭代测试.重构(强制性面向接口编程,要求代码具有可测试性) 2.1.面向接口编程的两个设计误区 2.1.1.接口的依赖倒置 2.1.2.接口对实体的抽象 2.2.迭代单元 ...

  9. Hello, AnnsShadow!

    Hello! 发现这个神奇的园子快一年了,自己的学习历程磕磕碰碰也过了一年了,想想,这么久了,是时候做些记录做个分享者了. 从一开始的只敢看Blog,到现在自己发表一下自己的所感所想,算是一种成长了吧 ...

  10. ln

    文件描述符是相对进程而言的,一个文件可以有多个文件描述符,但只有一个inode,inode一样就是同一个文件,文件名不同也是同一个 硬链接 两个文件是指向同一个存储区,inode号一样,并没有开辟新的 ...