并查集算法解决亲戚问题

2023-05-16

题目:亲戚

若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易。 现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。 我们规定:如果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个询问的答案为“具有”或“不具有”亲戚关系。
样例输入

6 5 3
1 2
1 5
3 4
5 2
1 3
1 4
2 3
5 6

样例输出

Yes
Yes
No

#include<iostream>
using namespace std;
int *parent;//记录每个节点的指向
int *r;//rank数组 记录每个根的高度


int find(int x){
	while(x!=parent[x]){
		parent[x] = parent[parent[x]];//路径压缩
		x = parent[x];
	}
	return parent[x];
}

void unionElements(int x,int y){
	int xRoot = find(x);
	int yRoot = find(y);
	if(r[xRoot]<r[yRoot])		 
		parent[xRoot] = yRoot;//将矮的根指向高的根 降低树的深度
	else if(r[xRoot]>r[yRoot])
		parent[yRoot] = xRoot;
	else{
		parent[xRoot] = yRoot;
		r[yRoot]++;   //高度相同 随意指向  高度+1
	}
}

bool isConnected(int x,int y){
	return find(x) == find(y);
}

int main(){
	int n,m,p;
	cin>>n>>m>>p;
    r = new int[n+1];
    parent = new int[n+1];
	for(int i=1;i<=n;i++){
		r[i] = 1; //初始每个节点高度为1
		parent[i] = i;//节点指向自身
	}
	for(int i=0;i<m;i++){
		int x,y;
		cin>>x>>y;
		unionElements(x,y);
	}
	for(int i=0;i<p;i++){
		int x,y;
		cin>>x>>y;
		if(isConnected(x,y))
			cout << "Yes" << endl;
		else
			cout << "No" << endl;
	}
    system("pause");
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

并查集算法解决亲戚问题 的相关文章

  • 进制之间的转换

    进制之间的转换 前言一 非常简单的方法二 计算方法1 所有 转 十进制2 十进制 转 所有3 二进制与八进制 xff0c 十六进制之间转换小技巧 前言 前面了解了进制的基本意思 xff0c 在实际工程中避免不了的需要通过进制转换来把十进制转
  • kubeasz一键部署containerd运行时、高可用k8s(1.26.x)集群-Day 02

    1 生产环境部署架构 xff08 1 xff09 多master节点 xff0c 实现master节点的高可用和高性能 xff08 2 xff09 单独的etcd分布式集群 xff08 生产使用SSD盘 xff09 xff0c 高可用持久化
  • kubectl和yaml文件内容介绍 Day02

    1 kubectl使用 官方文档 xff1a https kubernetes io zh cn docs reference kubectl https kubernetes io zh cn docs reference kubectl
  • 比du更好用的磁盘空间统计工具-diskusage

    1 介绍 官网地址 xff1a https github com chenquan diskusage blob master README CN md diskusage xff1a 一个显示磁盘使用情况的工具 xff08 Linux M
  • 阿里云服务器的端口有什么用,常用的端口有哪些,如何配置

    服务器端口数最大有65535个 xff0c 但是实际上常用的端口只有几十个 xff0c 由此可以看出未定义的端口相当多 比如 xff1a 通常TCP IP协议规定Web采用80号端口 xff0c FTP采用21号端口等 xff0c 而邮件服
  • 阿里云公司简介

    阿里巴巴云计算技术有限公司 xff0c 阿里巴巴集团旗下云计算品牌 xff0c 是全球领先的云计算及人工智能科技公司 公司简介 阿里巴巴云计算技术有限公司 xff08 简称阿里云 xff09 成立于 2009 年 9 月 10 日 xff0
  • 阿里云ECS服务器最新价格表(最新版收费标准)

    在2020年 xff0c 阿里云上架了t6 c6 r6 g6等实例规格的云服务器 xff0c 最新的价格表也有所变化 本文更新了截止目前ECS服务器最新的企业级linux系统价格表和最新磁盘及带宽价格表 xff0c 更多最新的阿里云服务器价
  • 阿里云和腾讯云全方位对比

    一 竞品分析目的 本文旨在人工智能行业通过对云服务平台代表性产品阿里云 腾讯云的产品定位 核心功能 发展战略等方面的研究 xff0c 探讨人工智能云服务平台产品的在国内的发展趋势 为之后根据实际情况利用具有较多优势的云服务平台研发应用层人工
  • 如何将其他注册商处的域名申请转出并转入阿里云(图文教程)

    随着越来越多的用户使用阿里云产品搭建自己的网站或者部署APP等项目 xff0c 将其他注册商处注册的域名转入阿里云就成了很多用户的需求 xff0c 毕竟将域名和云服务器等产品都放在阿里云既方便自己管理 xff0c 同时又更加放心 xff0c
  • 我对Swift的几点疑问

    Swift自问世以来 xff0c 就获得了全球开发者的青睐 xff0c 可以说集万千庞爱于一身了 xff0c 尤其是WWDC上的性能展示 xff0c 更是让开发者为之振奋 但是 xff0c 我却一直有几个疑问没有弄清 xff0c 不知您的看
  • 阿里云服务器怎么正确使用OSS内网地址?

    很多客户回租用阿里云服务器 xff0c 那么阿里云服务器怎么正确使用OSS内网地址 xff1f 当您通过OSS内网地址访问OSS资源时 xff0c 不收取流量费用 本文介绍ECS实例如何通过OSS内网地址访问OSS资源 通过OSS内网地址访
  • 2022年阿里云服务器租用价格表(最新收费标准及活动价格表)

    在2021年 xff0c 阿里云在全球率先宣布了基于 Intel Ice Lake 处理器的第七代云服务器ECS xff0c 性能提升的同时降低了报价 xff0c 性价比更高了 进入2022年阿里云服务器价格依然是大家关心的问题 xff0c
  • 游戏行业如何上云?阿里云架构师解读四大主流游戏架构

    游戏行业是阿里云最早聚焦的行业之一 xff0c 近年来游戏行业的变化 云计算产品技术的变化都与日俱进 随着行业业务的变化 技术架构的演进以及阿里云产品的迭代演进 xff0c 整体的产品技术选型在不同的游戏场景 业务场景也不尽相同 本文将聚焦
  • 阿里云企业级ARM计算规格族特点及适用场景介绍

    阿里云企业级ARM计算规格族是阿里云继X86计算 异构计算 弹性裸金屈服务器 超级计算集群之后推出的全新架构云服务器 xff0c ARM计算规格族有通用型实例规格族g8m 通用型实例规格族g6r和计算型实例规格族c6r这三个 下面是这三个实
  • 阿里云服务器共享型、计算型、通用型实例有什么区别?如何选择?

    现在我们我们大多数用户购买阿里云服务器的时候都是通过阿里云各种促销活动去下单购买 xff0c 但是活动中会有共享型 计算型 通用型等不同类型的实例规格 xff0c 例如同样是2核4G的云服务器 xff0c 活动中往往都会有共享型s6 计算型
  • 阿里云企业版实例迁移工具最佳实践

    本篇内容主要分为两个部分 xff1a 1 企业实例迁移的背景与挑战 2 阿里云企业实例迁移工具详解 一 企业实例迁移的背景与挑战 阿里云物联网平台 xff0c 分为公共区和企业实例 以餐馆用餐为例 xff0c 公共区相当于在大堂用餐 不同时
  • 阿里云服务器快速购买、自定义购买、通过活动购买图文教程

    阿里云是国内最知名的云服务器商 xff0c 凭借着稳定 xff0c 技术可靠和安全方面的优势成为了国内用户购买云服务器的首选服务商 购买阿里云服务器有快速购买 自定义购买和活动购买三种方式 xff0c 下面是这三种购买方式的图文教程 一 通
  • 阿里云服务器如何购买?三种方式可买(图文教程举例)

    阿里云服务器可以通过快速购买 自定义购买和活动购买三种方式去购买 每种购买方式都有自己的适合场景 xff0c 有很多需要注意的地方 xff0c 下面是这些购买方式的具体图文教程及注意事项 xff0c 适合初次购买阿里云服务器的用户参考 一
  • 阿里云服务器包年包月收费模式常见问题汇总(官方资料解答)

    阿里云服务器收费模式包含包年包月 按量付费和抢占式实例三种模式 xff0c 其中用户选择最多的是包年包月模式 xff0c 本文汇总了阿里云服务器包年包月收费模式常见问题及答案 xff0c 以供大家更详细的了解包年包月模式是如何收费的 什么是
  • 阿里云服务器4核8G配置多少钱?新购和续费价格分别是多少?

    阿里云服务器4核8G配置多少钱 xff1f 目前新用户购买4核8G配置云服务器最低为73 38元 3月起 xff0c 年付最低是765 94元 年起 xff0c 到期续费多少钱 xff1f 目前新购之后续费享受4 5折 详细的收费标准 活动

随机推荐